FC2カウンター FPGAの部屋 2019年02月08日
FC2ブログ

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

FPGAの部屋

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

カメラ画像をDisplayPortに出力する8(Ultra96 での準備)

カメラ画像をDisplayPortに出力する7(ブロックデザインの変更)”の続き。

前回は、init_done 信号用と active_frame をキャプチャするための axi_gpio を 2 つ追加した。今回は、Ultra96 上のDebian で、デバイスツリーを生成して、アプリケーションを動作させる下準備を行う。

Ultra96 の電源をON して、Debian を起動した。
examples ディレクトリ下に cam_dp ディレクトリを作成した。
カメラ画像をDisplayPortに出力する7(binファイルの生成)”で生成したbin ファイルを SFTP でUltra96 の cam_dp ディレクトリにアップロードした。

デバイスツリーのソースを作成した。fpga-load.dts, fclk01-zynqmp.dts, cam_dp.dts
fpga-load.dts を貼っておく。

/dts-v1/;
/ {
    fragment@0 {
        target-path = "/fpga-full";
        __overlay__ {
            firmware-name = "cam_dp_wrapper.bin";
        };
    };
};


fclk01-zynqmp.dts を貼っておく。

/dts-v1/;/plugin/;
/ {
    fragment@0 {
        target-path = "/amba";
        __overlay__ {
            fclk0 {
                compatible    = "ikwzm,fclkcfg-0.10.a";
                clocks        = <&clk 0x47>;
                insert-rate   = "200000000";
                insert-enable = <1>;
                remove-rate   = "1000000";
                remove-enable = <0>;
            };
            
            fclk1 {
                compatible    = "ikwzm,fclkcfg-0.10.a";
                clocks        = <&clk 0x48>;
                insert-rate   = "24000000";
                insert-enable = <1>;
                remove-rate   = "1000000";
                remove-enable = <0>;
            };
        };
    };
};


cam_dp.dts を貼っておく。

/dts-v1/;/plugin/;
/ {
    fragment@0 {
        target-path = "/amba_pl@0";
        #address-cells = <2>;
        #size-cells = <2>;

        __overlay__ {
            #address-cells = <2>;
            #size-cells = <2>;

            mt9d111_inf_axis-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0010000 0x0 0x1000>;
            };
            
            axi_iic-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0011000 0x0 0x1000>;
            };
            
            disp_dmar_axis-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0000000 0x0 0x10000>;
            };

            vflip_dma_write-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0020000 0x0 0x10000>;
            };

            axi_gpio_0-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0012000 0x0 0x1000>;
            };
            
            axi_gpio_1-uio {
                compatible = "generic-uio";
                reg = <0x0 0xA0013000 0x0 0x1000>;
            };
            
            cam_dp-udmabuf4 {
                compatible  = "ikwzm,udmabuf-0.10.a";
                device-name = "udmabuf4";
                size = <0x02000000>;
            };
        };
    };
};


cam_displayport_27_190205.png

デバイスツリーのコンパイル用スクリプトの dtc_script.sh を作成した。
dtc_script.sh を示す。

#!/bin/bash

dtc -I dts -O dtb -o fpga-load.dtb fpga-load.dts
dtc -I dts -O dtb -o fclk01-zynqmp.dtb fclk01-zynqmp.dts
dtc -I dts -O dtb -o cam_dp.dtb cam_dp.dts


./dtc_script.sh を起動して、dtb ファイルを作成した。
cam_displayport_28_190205.png

cam_displayport_29_190205.png

デバイスツリーのロード用スクリプト lddtovary.sh と削除用スクリプトの rmdtovary.sh を作成した。
lddtovary.sh を示す。

#!/bin/bash

sudo mkdir /config/device-tree/overlays/fpga
sudo cp fpga-load.dtb /config/device-tree/overlays/fpga/dtbo
sudo mkdir /config/device-tree/overlays/fclk01-zynqmp
sudo cp fclk01-zynqmp.dtb /config/device-tree/overlays/fclk01-zynqmp/dtbo
sudo mkdir /config/device-tree/overlays/cam_dp
sudo cp cam_dp.dtb /config/device-tree/overlays/cam_dp/dtbo

sleep 0.5
sudo chmod 666 /dev/uio*
sudo chmod 666 /dev/udmabuf4


rmdtovary.sh を示す。

#!/bin/bash

sudo rmdir /config/device-tree/overlays/cam_dp/
sudo rmdir /config/device-tree/overlays/fclk01-zynqmp
sudo rmdir /config/device-tree/overlays/fpga/


./lddtovary.sh を起動した。
cam_displayport_30_190205.png

./lddtovary.sh を起動したときのシリアルポートの出力を示す。
cam_displayport_31_190205.png
  1. 2019年02月08日 04:27 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0