”FPGAで遊んでみる”では、セミナー用に作成したサンプル回路などを整理して少しづつ紹介していきます。
セミナ開催します
手ぶらでOK!IoTプログラミング教室
-- IoT開発キットM5StickC Plus2で作る通信ガジェット
2025年2月28日(金)CQ出版社セミナルーム CQ出版社セミナ・ルーム
詳しくはこちらへ
ZYBOの本
FPGAパソコンZYBOで作るLinux I/Oミニコンピュータ CQ出版 発売中
Papilioの本
FPGA版Arduino!!Papilioで作るディジタル・ガジェット CQ出版 発売中
第13回 Arduino互換FPGAボードPapilioでZPUinoを使ってみる
Arduinoと互換性のあるFPGA評価ボードPapilioシリーズを使ってみます。PapilioシリーズはGadgetFactoryが進めているオープンソース・ハードウェア・プロジュエクトの成果物です。
FPGAの回路にZPUinoを書き込みことでArduinoIDEをベースしたZAP IDEを使ってArduinoと同様のプログラミングで使うことができます。
もちろん、ZAP IDEからではなく汎用的なFPGAボードとして使うこともできます。
Xilinx社Spartan6LX9を搭載したしたPapilio Proを例に紹介します。
使用部品
Papilio Pro(FPGAボード) 入手先:秋月電子
Arduinoとして使ってみる
ツールの準備
初めにGadgetFactoryのZAP IDE QuickStartに目を通してください。
ZAP IDEをダウンロードします。ZAP IDEのダウンロードページで”Download”をクリックします。使用許諾をお求めれるので、よければ”Agree&Doewnload”をクリックします。
ダウンロードファイルが表示されるので自分の環境にあったファイルをクリックをするとダウンロードが開始します。
ここでは、”Download(Windows Recommended)"を選択したとして説明を続けます。
ダウンロードしたzipファイルをツールをインストールしたいフォルダに解凍します。
Windowsのインストーラは使用しないので、解凍が済めばツール導入は終わりです。
FPGAボードの準備
PapilioProとPCをUSBケーブルで接続します。ドライバーが未登録の場合はドライバーがインストールされます。
Windowsでコントロールパネル->システム→デバイスマネージャーを表して、
ポート(COMとLPT)に"USB Serial Port"が二つ表示されればドライバーのインストールは成功です。
割り当てられる番号はPCにより違います。
なお、PapilioProの電源はUSBから供給されるようになっています。
ZAP IDEからスケッチの実行
zipファイルを解凍したフォルダにあるzap.exeをダブル・クリックするとZAP IDEが起動します。
初めに以下の設定をします。
"ツール"→"ボード"、ZPUino on PapilioPro(LX9),Vanilla
Variantを選択
これでターゲットボードはZPUinoの回路をFPGAに書き込んだPapilioProに設定されます。
※この時点でZAP IDEの設定のみでPapilioProへZPUinoの書き込みは行われていません。
"ツール"→"シリアルポート"、二つ追加されたうちの番号の大きい方を選択
"ツール"→"書込装置"、Papilio Programmerを選択
"ツール"→"ブートローダを書き込む"、クリックして実行、ZPUinoの回路情報の入ったBITファイルの書き込みが開始します。
※ここでPapilioProのSPIフラッシュメモリに回路情報が書き込まれます。
※書き込みが完了するとSPIフラッシュメモリのデータを使ってFPGAが起動してZPUinoとして動きます。
暫く待って、”ブートローダの書き込みが完了しました”と表示されれば書き込み完了
サンプルスケッチを開き来ます
"ファイル"→"スケッチの例"→"01:Basics"→"Blink"を選択すると新しいウィンドでLED点滅のサンプルスケッチが開きます。
※スケッチはZPUinoで動くプログラムです。
ledの値を13から49に変更します。13はArduinoのLEDのピン番号で、PapilioProは49番なので変更が必要です。
"ファイル"→"マイコンボードに書き込む"を選択すると、コンパイルが実施されて実行ファイルがPapilioProに書き込まれます。
”マイコンボードへの書き込みが完了しました”と表示されれば成功です。
直ぐにスケッチが実行されて緑色のLED1が点滅します。
スケッチはArduino言語?(C++/C言語ベース)で書きます。Arduino言語の詳細はArduino日本語リファレンスに情報があります。
ただし、オリジナルのArduinoに使われるAVRマイコンにあってZPUinoにない機能(AD変換、乱数発生等)はZPUinoでは利用できません。
AD変換については外部回路を追加すれば利用可能です。
FPGAボードとして使う
FPGA書き込みツールの準備
PapilioシリーズはXilinx社のダウンロードケーブルを使わずに専用のソフトウェア(Papilio
Loader)でBITファイルの書き込みができます。
初めにGadgetFactoryのGetting Startedのページに目を通してださい。
Papilio Loaderのダウンロードページ の”Download”をクリックすると使用許諾をお求めれるので、よければ”Agree&Doewnload”をクリックします。
ダウンロードファイルが表示されるので自分の環境にあったファイルをクリックをするとダウンロードが開始します。
ここでは、”Download(Windows Recommended)"を選択したとして説明を続けます。
ダウンロードしたzipファイルを解凍すると作られるPapilio Loader-2.6-Setupを実行してインストーラに従ってインストールします。
PapilioLoaderの実行
起動前にPapilioProとPCをUSBケーブルで接続します。
"スタート"→"全てのファイル"→"GadgetFactory"→"PapilioLoader"を選択するとPapilioLoaderが起動時ます。
"Target Bit File" へ書き込むBITファイルを指定して、"Run"をクリックするとBITファイルの書き込みが開始します。
BITファイルは予めISEで作成してください。動作確認したい場合はGadgetFactoryのGetting sStartedのページにサンプルのBITファイルが用意されています。
"Write to"でFPGAが選択してあるときは、BITファイルはFPGAに書き込まれます。高速で書き込まれますが、ボードの電源が切れると回路情報が失われます。
SPI Flashが選択してあるときは、BITファイルはSPIフラッシュメモリに書き込まれますので、ボードの電源が切れても回路情報は失われません。
紹介した回路・プログラムを試す場合は、自己責任でお願いします。
次回はPapilioとZPUinoでZAP IDEのライブラリィを使ってモニタ(VAG)表示してみます。
リンクフリーです。
リンクされた場合にご連絡をいただけると嬉しです。
メール:
変更履歴
(2014/9/20) 初版
(2014/10/04) 一部修正