FC2カウンター FPGAの部屋 Ultra96
FC2ブログ

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

FPGAの部屋

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

Ultra96用PMOD拡張ボード15(Ultra96V2用に改版した3)

Ultra96用PMOD拡張ボード14(Ultra96V2用に改版した2)”の続き。

Ultra96V2用に改版したUltra96用PMOD拡張ボードを5月15日にFusionPCB に発注したが、5月24日(金)に基板が到着した。
今回は、Power SW などを搭載するようにした。
部品を実装して、動作を確認したいがいま検証しているMIPIボード用PMOD 拡張ボードの検証が終わってからにしよう。
Ultra96_ext_board_9_190526.jpg

Ultra96_ext_board_10_190526.jpg
  1. 2019年05月26日 11:34 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

MIPIボード用PMOD拡張ボードをテストする2(PMODテスト用IPの作成)

MIPIボード用PMOD拡張ボードをテストする1”の続き。

前回は、MIPI ボード用PMOD 拡張ボードに部品を実装し、MIPI ボードの取り付けて、MIPI ボードの動作に変化が無いことを確かめた。今回は、PMOD 拡張ボードのPMOD の動作を確認するためにPMOD テスト用IP を作成し、Vivado に持っていって論理合成を行った。

まずは、PMOD テスト用のIP だが、Vivado HLS 2018.2 を使用して作成したものがすでにある。
Ultra96用PMOD拡張ボードのPMOD端子のテストのために8ビットカウンタのLチカを作る”で作成してあるが、Windows 10 で作ってあったので、今回、Ubuntu 18.04 で作成してみよう。

Vivado HLS 2018.2 を起動して、ex_board_test プロジェクトを作成した。なお、動作周波数は 1 MHz だ。
PMOD_B4MIPI_B_test_8_190524.png

C シミュレーションを実行した。問題なさそうだ。
PMOD_B4MIPI_B_test_9_190524.png

C コードの合成を行った。結果を示す。
PMOD_B4MIPI_B_test_10_190524.png

Export RTL を行った。なお、Vivado synthesis, place and route にチェックを入れてある。
PMOD_B4MIPI_B_test_11_190524.png

ex_board_test/solution1/ipml/ip ディレクトリに xilinx_com_hls_ex_board_test_1_0.zip ファイルが生成された。
PMOD_B4MIPI_B_test_12_190524.png

Vivado 2018.2 のプロジェクトのultra96_design ディレクトリに ex_board_test というディレクトリを作成し、ZIP ファイルを展開した。
PMOD_B4MIPI_B_test_13_190524.png

Vivado で ex_board_test IP をリポジトリに登録した。

zynq_ultra_ps_e_0 を開いて、PL Fabric Clocks の PL 1 を 1 MHz に設定して、出力させた。
PMOD_B4MIPI_B_test_14_190524.png

ex_board_test IP をブロック・デザインに追加した。
PMOD_B4MIPI_B_test_15_190524.png

現在、論理合成が成功している。
  1. 2019年05月24日 05:24 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

MIPIボード用PMOD拡張ボードをテストする1

MIPI Adapter MezzanineボードのJ13、J15用のPMOD拡張ボードが届いた”の続き。

MIPI Adapter MezzanineボードのJ13、J15用のPMOD拡張ボードが届いた”で届いた基板に部品を実装した。
なお、J1(MIPIボード上ではJ13)の15 - 16 (CAM1_SDA), 17 - 18 (CAM1_SCL), 19 - 20 (CAM2_SDA), 21 - 22 (CAM2_SCL) 番ピン間のショート・パターンはパターン・カットした)
PMOD_B4MIPI_B_test_1_190523.jpg

PMOD_B4MIPI_B_test_2_190523.jpg

これを現在使用しているUltra96 用MIPI ボードに載せた。
PMOD_B4MIPI_B_test_3_190523.jpg

この状態で、MIPI ボードの動作確認をするために、”Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる3”をもう一度やってみた。
Ultra96 のDebian 上で作業する。
まずは、環境変数のLD_LIBRARY_PATH は .bashrc に記述してある。

export LD_LIBRARY_PATH=/usr/local/lib/


cd examples/Pcam5C/
sudo ./init_camera.sh

PMOD_B4MIPI_B_test_4_190523.png

PMOD_B4MIPI_B_test_5_190523.png

cd test/
sudo ./rgbtest

これで 20 枚のPNG カメラ画像が取得できた。問題ないようだ。
PMOD_B4MIPI_B_test_6_190523.png

PMOD_B4MIPI_B_test_7_190523.png

次からは、Vivado のブロック・デザインにPMOD に出力する信号を追加して、MIPIボード用PMOD拡張ボードをテストしていこう。
  1. 2019年05月23日 04:44 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる4

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる3”の続き。

前回は、Fixstars Tech Blog さんの「Ultra96 Linux で MIPI カメラから画像を取得する (セットアップ編)」の手順通りに、「5. 実機上でのカーネルドライバロードおよび初期化 S/W の実行」、「6. 実機上でのカメラ画像取得テストの実行」を行った。今回は、「7. display port 経由での外部ディスプレイ出力」をやってみよう。

まずはミニDisplayPort 変換アダプタを使用して、VGA端子でディスプレイと接続した。

Ultra96 のDebian で、
sudo apt install xserver-xorg lightdm gnome-session
を実行したがエラーになった。
Ultra96_Pcam5C_46_190521.png

そこで、
sudo apt update
sudo apt upgrade
sudo apt install xserver-xorg lightdm gnome-session

を行ったところ、成功した。
Ultra96_Pcam5C_47_190521.png

次に、ultra96_design/etc/xorg.conf をUltra96 の /etc/X11/ ディスプレイにコピーする。
sudo cp xorg.conf /etc/X11/
Ultra96_Pcam5C_48_190521.png

Ultra96 を
sudo reboot
コマンドで再起動した。

再起動後にミニDisplayPort 変換アダプタを使用して接続したディスプレイを見るとログイン画面が表示されていた。
Ultra96_Pcam5C_51_190522.jpg

ここにID: root , PASS: admin でログインできたのだが、すぐに出されてログイン画面が表示されてしまう。ログインしたままにならない。
よく分からないので、前に進めてみよう

export DISPLAY=:0.0
して、
cd test
sudo ./rgbvideo

してみたが、

Invalid MIT-MAGIC-COOKIE-1 key
(camera:4120): Gtk-WARNING **: cannot open display: :0.0

でカメラ画像を表示できなかった。

  1. 2019年05月22日 04:01 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる3

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる2”の続き。

前回は、Fixstars Tech Blog さんの「Ultra96 Linux で MIPI カメラから画像を取得する (セットアップ編)」の手順通りに、「bin ファイルの生成」、「V4L2 カーネルドライバおよびカメラ初期化 S/W のビルド」を行った。今回は、「5. 実機上でのカーネルドライバロードおよび初期化 S/W の実行」、「6. 実機上でのカメラ画像取得テストの実行」を行う。

「5. 実機上でのカーネルドライバロードおよび初期化 S/W の実行」をやってみよう。
ホスト・パソコンの ~/ultra96_design/overlay/ ディレクトリの内容を
Ultra96_Pcam5C_33_190519.png

cd examples
mkdir Pcam5C

Ultra96 のDebian の examples ディレクトリの下に、 Pcam5C ディレクトリを作成し、その下にホスト・パソコンの ultra96_design/overlay/ ディレクトリの内容をSFTP した。

~/ultra96_design/src/linux/caminit/build/caminit ファイルも Pcam5C ディレクトリにSFTP した。

さらに、ホスト・パソコンの ^/ultra96_design/src/linux/driver ディレクトリの v4l2.ko をUltra96 のDebian の examples ディレクトリの下の Pcam5C ディレクトリにSFTP した。
Ultra96_Pcam5C_34_190519.png

Ultra96 の/lib/modules/4.14.0-xlnx-v2018.2-zynqmp-fpga/kernel/drivers/ ディレクトリの下に v4l2 ディレクトリを作成する。
v4l2.ko をそのディレクトリに移動した。
sudo mkdir /lib/modules/4.14.0-xlnx-v2018.2-zynqmp-fpga/kernel/drivers/v4l2/
sudo mv v4l2.ko /lib/modules/4.14.0-xlnx-v2018.2-zynqmp-fpga/kernel/drivers/v4l2/

Ultra96_Pcam5C_35_190519.png

sudo demod -a
sudo mv fpga.bin /lib/firmware/

を実行した。
Ultra96_Pcam5C_36_190519.png

sudo su
でスーパーユーザになって、
./init_camera.sh
を実行した。
ビットストリームをコンフィグし、fclk を設定して、V2L2 のドライバをインストールした。
Ultra96_Pcam5C_37_190519.png

Ultra96_Pcam5C_38_190519.png

Pcam5C ディレクトリの下に、test ディレクトリを作成した。
mkdir test
test ディレクトリに、ホスト・パソコンの ~/ultra96_design/test / ディレクトリのファイルとディレクトリをコピーした、。
Ultra96_Pcam5C_39_190519.png

OpenCV は 3.4.3 をすでにインストールしてある

makefile 先頭の OPENCV_DIR を ^?opencv-3.4.3 に設定する。
Ultra96_Pcam5C_40_190519.png

make
する。成功した。 rgbterst, rgbvideo, uvc_camera_test, yuvtest の各実行ファイルが作成された。
Ultra96_Pcam5C_41_190519.png

環境変数を設定してから、
export LD_LIBRARY_PATH=/usr/local/lib/
sudo ./rgbtest

Ultra96_Pcam5C_42_190519.png

Ultra96_Pcam5C_43_190519.png

0.png 〜 19.png までのPNG ファイルが作成された。

0.png を見たが、ちゃんと画像が写っていた。成功だ。ただし、カメラの上下方向は反対になっている。これは、カメラを上下反転して置いてあるからなので正常だ。
Ultra96_Pcam5C_44_190519.jpg

(2019/05/21:追加)
MIPI 拡張ボードとPcam5C の接続の様子の写真を貼っておく。
Ultra96_Pcam5C_45_190521.jpg
  1. 2019年05月19日 20:42 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる2

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる1”の続き。

前回は、Fixstars Tech Blog さんの「Ultra96 Linux で MIPI カメラから画像を取得する (セットアップ編)」の手順通りに、Vivado 2018.2 でTCL スクリプトを起動して、Vivado 2018.2 のプロジェクトを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。今回は続きの「bin ファイルの生成」、「V4L2 カーネルドライバおよびカメラ初期化 S/W のビルド」を行っていく。

今回もFixstars Tech Blog さんの「Ultra96 Linux で MIPI カメラから画像を取得する (セットアップ編)」の手順通りに実行していく。

「3.4 bin ファイルの生成」を行う。
~/ultra96_design/ultra96_design/ultra96_design.runs/impl_1/ ディレクトリに design_1_wrapper.bit があるのを確認した。
Ultra96_Pcam5C_14_190517.png

同じディレクトリに fpga.bif を作成した。
Ultra96_Pcam5C_15_190517.png

all:
{
    [destination_device = pl] design_1_wrapper.bit
}


Ultra96_Pcam5C_16_190517.png

同じディレクトリで、
bootgen -image fpga.bif -arch zynqmp -w -o fpga.bin
を実行したところ、fpga.bin が生成された。
Ultra96_Pcam5C_17_190517.png

Ultra96_Pcam5C_18_190517.png

「4. V4L2 カーネルドライバおよびカメラ初期化 S/W のビルド」の「4.1 SDK による BSP 生成」を行う。
Vivado 2018.2 で File メニューから Export -> Export Hardware… を選択する。
Export Hardware ダイアログが表示されるので、include bitstream にチェックを入れて(これは必要ないと思うが)OK ボタンをクリックした。
Ultra96_Pcam5C_19_190517.png

次に、File メニューからLaunch SDK を選択する。
Launch SDK ダイアログが表示されるので、デフォルトのままOK ボタンをクリックした。
Ultra96_Pcam5C_20_190517.png

SDK が立ち上がった。
Ultra96_Pcam5C_21_190517.png

SDK のFile メニューから New -> Board Support Package を選択する。
New Board Support Package Project ダイアログの Xilinx Board Support Package Project 画面が表示された。デフォルトのままFinish ボタンをクリックした。
Ultra96_Pcam5C_22_190517.png

続いて、New Board Support Package Project ダイアログの Board Support Package Settings 画面が表示された。デフォルトのまま、OK ボタンをクリックした。
Ultra96_Pcam5C_23_190517.png

SDK に standalone_bsp_0 が生成された。
Ultra96_Pcam5C_24_190517.png

「4.2 カーネルドライバのビルド」を行う。
cd ~/ultra96_design/src/linux/driver
make

Ultra96_Pcam5C_25_190517.png

Ultra96_Pcam5C_26_190517.png

カーネルドライバ v4l2.ko が生成された。
Ultra96_Pcam5C_31_190517.png

「4.3 カメラ初期化 S/W のビルド」を行う。
~/ultra96_design/src/linux/caminit/ ディレクトリの main.cc に caminit() 関数を見ると、 SENSOR_OV5640 が定義されていた。カメラはPcam-5C カメラを使う予定なので、これで問題ない。よって、main.cc はデフォルトのままとした。
Ultra96_Pcam5C_27_190517.png

Ultra96_Pcam5C_28_190517.png

cd ~/ultra96_design/src/linux/caminit/build/
make

Ultra96_Pcam5C_29_190517.png

Ultra96_Pcam5C_30_190517.png

caminit が生成された。
  1. 2019年05月17日 05:01 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Fixstars Tech Blogの「Ultra96 Linux で MIPI カメラから画像を取得する」をやってみる1

基板は、まだPMOD 6 個のUltra96 用PMOD 拡張ボードが残っているのだが、基板の設計に飽きたので、Fixstars Tech Blog さんに「Ultra96 Linux で MIPI カメラから画像を取得する」がある。これは、Ultra96 にMIPI 拡張ボードを挿して、MIPI コネクタにPcam 5C を挿入して画像を自分でもMIPI 拡張ボードとPcam 5C カメラを持っているので、やってみることにした。

最初に、Fixstars Tech Blog さんの「Ultra96 Linux で MIPI カメラから画像を取得する (セットアップ編)」の手順に従ってやっていこう。

MIPI ボードのセットアップは後回しにした。

debian Linux イメージ SD カードは、ikwzm さんのをすでに作成してある。

Ultra96 のボード・ファイルもVivado にインストールしてある。

「3. HW の作成」からやってみよう。
使用環境は、Docker 上に構築した Ubuntu 16.04 上のVivado 2018.2 を使用する。
最初にXilinx のMIPI CSI Controller Subsystem のページに行って、IP コアのライセンスを取得した。
Ultra96_Pcam5C_1_190515.png

Ubuntu 16.04 上でVivado 2018.2 を立ち上げて、Help メニューから Manage License... を選択する。
Vivado License Manager が立ち上げる。
左のペインの Load Lincense をクリックして、右のペインの Copy License... ボタンをクリックする。
Ultra96_Pcam5C_2_190515.png

Select License File ダイアログでダウンロードしたMIPI コア IP のライセンスを指定する。
Ultra96_Pcam5C_3_190515.png

ライセンスのインストールが成功したというダイアログが表示された。
Ultra96_Pcam5C_4_190515.png

左のペインからView License Status をクリックすると、右のペインに mipi_csi2_rx_ctrl が表示された。
Ultra96_Pcam5C_5_190515.png

これで、Vivado の設定は終了した。

次に、fixstars さんの ultra96_design.git を git clone する。
git clone https://github.com/fixstars/ultra96_design.git
Ultra96_Pcam5C_6_190515.png

cd ultra96_design
git submodule init

Ultra96_Pcam5C_7_190515.png

git submodule update
Ultra96_Pcam5C_8_190515.png

Vivado 2018.2 はすでに起動している。
TCL Console を表示して、コマンドを入力した。
cd ./ultra96_design
source ./script/create_project.tcl

Ultra96_Pcam5C_9_190515.png

プロジェクトが生成され、ブロックデザインも生成された。
Ultra96_Pcam5C_10_190515.png

ブロックデザインを示す。
Ultra96_Pcam5C_13_190516.png

ブロックデザインは、 mipi_csi2_rx_subsyst_0 からのデータを Vivado HLS で作成した demosaic_root IP に入れて、画像データになおしていると思われる。そのデータはVDMA 経由でDDR SDRAM にDMA されるのだろう?

次に、論理合成、インプリメンテーション、ビットストリームの生成を行った。成功した。
Ultra96_Pcam5C_11_190515.png

Summary を示す。
Ultra96_Pcam5C_12_190515.png
  1. 2019年05月16日 04:48 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0
»