”FPGAで遊んでみる”では、セミナー用に作成したサンプル回路などを整理して少しづつ紹介していきます。


Papilioの本
FPGA版Arduino!!Papilioで作るディジタル・ガジェット CQ出版 発売中

セミナ開催します。
"実習・MAX10 NiosIIプロセッサ活用超入門”
2017年8月23日(水)、CQ出版社セミナルーム
DE10-Liteを使ってMAX10上でNisoIIを動かします.
詳しくはこちらへ


第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) 一部修正


TOPへ戻る