AVNET Ultra96-V2 で遊ぶ Mac でLチカまで行いました

FPGA

先日購入したUltra96-V2。チュートリアルに従ってLED の点灯まで行ってみました。

学習用にFPGA ボードを購入 AVNET Ultra96-V2 を購入しました。

 

Mac でFPGA 開発は難しい?

まず最初に理解しておかなければならないことは、Mac でFPGA の開発はやや面倒ということ。近年のXilinx 社製のFPGA はVivado というツールを使用して行うのですが、そのVivado がWindows とLinux しか対応しておらず、Mac に直接インストールすることができません。

ダウンロード – XILINX

とはいえ今回はチュートリアルのため、すでにデザインが用意されています。Vivado を利用する必要はないので大丈夫です。

チュートリアルは以下のドキュメントを参考に進めていくことができます。

Ultra96-V2 Getting Started Guide

 

micro SD カードにイメージを書き込み

まず最初に行うべきことは、Ultra96-V2 に付属のmicro SD カードにイメージを書き込むこと。イメージは以下のページからダウンロードすることができます。

http://avnet.me/ultra96-v2-oob

zip ファイルでサイズは425MByte、それを解凍するとなんとおよそ16GByte となるので、それなりに時間がかかります。ディスクの空き容量にも注意が必要です。

さらに書き込みには専用のソフトが必要。balenaEtcher というソフトを利用して書き込みを行いますので、インストールが必要です。この書き込みにも時間がかかります。のんびりと待ちましょう。

現行のMacBook Pro にはmicro SD カード書き込み用のコネクタは用意されていないので、僕は以下のドックを利用しています。

EKSA USB Type-C ハブ 7in1 PD急速充電 Thunderbolt3 USB3.0 HDMI SD/TF MacBook Pro専用

 

Ultra96-V2 起動

micro SD カードへの書き込みが正常に完了していれば、この時点でUltra96-V2 の起動が可能となっているはずです。micro SD カードをUltra96-V2 に挿入後SW4 と書かれたプッシュボタンを押下。しばらくしてDONE と書かれた青いLED が点灯すれば起動成功です。

 

UART 経由でログイン

次に行うのはUART 経由でのUltra96-V2 へのログイン。PC とUltra96-V2 をAES-ACC-U96-JTAG 経由で接続します。

 

接続後にターミナルで以下のコマンドを叩くと、usbserial が確認できました。

$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   4  8 13 18:08 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   18,   2  8 13 18:08 /dev/tty.MALS
crw-rw-rw-  1 root  wheel   18,   0  8 13 18:08 /dev/tty.SOC
crw-rw-rw-  1 root  wheel   18,  10  8 20 19:30 /dev/tty.usbserial-1234_oj10
crw-rw-rw-  1 root  wheel   18,  12  8 20 19:30 /dev/tty.usbserial-1234_oj11

UART は/dev/tty.usbserial-1234_oj11 なので、以下のコマンドで接続します。

$ sudo cu -s 115200 -l /dev/tty.usbserial-1234_oj11

一度Enter をクリックすればログインができます。Password もroot です。

ultra96v2-oob-2018-3 login: root
Password: 

Wifi 接続

ログインが完了したことで、シリアル経由でUltra96-V2 の内部をいじることが可能になりました。次はWifi の設定を行っていきます。編集の必要があるのは~/wpa_supplicant.conf これをvim で編集します。

[root@ultra96v2-oob-2018-3:~# vim ~/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
        key_mgmt=WPA-PSK
        ssid="<ssid>"
        psk="<pass>"
}

<ssid>, <pass> にwifi の情報を入力します。5GHz の11ac は利用できないので注意して下さい(2.4GHz であれば問題なし)

最後に~/wifi.shを実行することでwifi への接続が完了します。このときもしエラーが出力されたら、先程のsupplicant.confに間違いがないか確認してみて下さい。

[root@ultra96v2-oob-2018-3:~# ~/wifi.sh

Lチカ

それではLチカを試しましょう。チュートリアルデザインではブラウザ上からLED にアクセスできるので、まずはどのIP Address が割り当てられているかを確認します。

[root@ultra96v2-oob-2018-3:~# ifconfig

IP Address が確認できたら、ブラウザのURL 欄にその値を打ち込むとUltra96-V2 にアクセスできます。

 

アクセスできたら「Ultra96 GPIO LEDs」をクリックしましょう。すると以下のようなページに遷移するのですが、ここのドロップダウンリストの値を変更するとUltra96-V
2 ボード上のLED も切り替わります。これでLチカの完了です

 

mini DP から画面に出力してのLチカも可能

ここまではUART 経由で設定を行ってきましたが、mini DP 経由で画面を出力し、そちらを見ながら設定をすることも可能。僕は以下の2つを組み合わせて画面出力を行っています。


アイネックス Mini DisplayPort – HDMIアクティブヘンカンケーブル [ 20cm ] AMC-MDPHD


Amazonベーシック HDMIケーブル 0.9m (タイプAオス – タイプAオス) ハイスピード

Ultra96-V2 を起動すると自動的にブラウザが立ち上がり、先程のLチカが可能となります。

また、このGUI 上からもWifi の設定ができるはずです。ですが、僕の環境だけかもしれませんが、GUI 上からだと正常にWifi に接続することができませんでした。

 

なんとかチュートリアルをクリアできました。引き続きいろいろいじっていこうと思います。