こんにちは。

マクニカでインテル® 製品の技術サポートをしている インテル・F・ハナコ です。

 

Mpression 製の Odyssey MAX® 10 評価キット は、FPGA やマイコン、センサをスマホで動かせる開発キットで、非常に安価にインテル® の MAX® 10 FPGA を検証できるボードの一つです。

Article header board  1

今回は、この Odyssey の MAX® 10 FPGA に対してコンフィギュレーション・データを転送する際に、USB-Blaster™ II ダウンロード・ケーブルを使用せずに USB-microUSB ケーブルから転送する方法をご紹介!その [操作編] です。

事前に下記の [概要編] をご覧ください。
[概要編] MAX® 10 評価キットOdyssey の FPGA に microUSB ポート経由でコンフィギュレーション・データを転送してLチカ!

いよいよ作業スタ-ト!

1. Quartus® Prime で MAX® 10 の設計をして、コンフィギュレーション用データ(.sof)およびプログラミング用データ(.pof)を作成

Quartus® Prime においてプロジェクトを作成し、デザインを作成します。
みなさんが試される場合のデザインはどのような仕様でも良いですが、今回のデモ用デザインは、Odyssey 上にある8個の LED をLチカ(点滅)させる下図のような仕様にしてみました。(今回のテーマは回路作成ではないので、詳細説明は省略します。)

Article header led  2

ピン・レイアウト、オプション設定、タイミング制約などを行い、コンパイルを実行します。コンパイル結果の確認およびタイミング解析をして、Lチカのプロジェクトを完成しておきます。
MAX® 10 はコンフィギュレーション用フラッシュメモリ搭載型の FPGA なので、Quartus® Prime でコンパイルをすると .sof と .pof の2ファイルが生成されます。通常、デバイスの出荷時は MAX® 10 のデータをデバイス内部に格納しておかなければならないため、CFM(Configuration Flash Memory)に pof ファイルをプログラミングします。でも今回はデモ目的なので、一時的に保存される Configuration RAM(CRAM)に sof ファイルを転送する方法を取ります。

Article header config file  3



2. Quartus® Prime で 作業1 のファイルを JAM ファイル “.jbc ”(Jam Byte Code)に変換

Quartus® Prime の Programmer を起動し、sof ファイルをセットします。(MAX® 10 の CFM にプログラミングしたい場合は pof ファイルをセットしてください。)
Programmer の File メニューから “Create JAM, JBC, or ISC File…” を選択します。Create JAM, JBC, or ISC File ダイアログボックスが表示されるので、File name に任意のファイル名を付けて、File Format から “JamSTAPL Byte Code 2.0 (.jbc)” を選び、OK ボタンをクリックします。(jbc ファイルが生成されたことを示すメッセージボックスが表示されます。)

Article header programmer  4


 

3. Tera Term で EFM32 に接続

USB-microUSBケーブルでパソコンと Odyssey を接続し、Tera Term を起動します。
Odyssey 向けの Tera Term 環境設定ファイル(TERATERM.INI)を使用していない場合には、[設定] メニューの [シリアルポート] よりボー・レイトなどの設定を行ってください。設定の詳細は、Odyssey ユーザガイドの2.2.5 Serial Communications Terminal を見てください。

Article header teraterm 1  2

“ファイル・メニュー > 新しい接続” から、シリアルを選択し、ポート一覧から “Silicon Labs CDC Serial port” を選択し OK ボタンをクリックします。(あらかじめ Silicon Labs(シリン・ラボ)の USB Virtual シリアル・ポート・ドライバ をインストールしていないと、表示されません。)

EFM32 に接続できたら、Odyssey の [S3] ボタン をポチッと押してください。

Article header odyssey s3  1

D1 の LED が点灯し、コンソール・メニュー・システムが開始されます。Tera Term の画面に “--Press Enter to continue” の文字が表示されますので、キーボードの Enter キーを押します。

Tera Term の画面上にオプション・メニューが表示されます。

Article header teraterm 3  2

オプション・メニューから [0] を選択し Enter キーを押すと、Odyssey 上の Flash メモリに保存されているパーソナル名が表示されます。

Article header teraterm 4  1

パーソナリティの [0]~[10] までが FPGA で使用して良い領域です。パーソナリティ[7]が使用されていないので、ここに MAX® 10 のコンフィギュレーション・データ(.jbc)を転送しようと思います。
(Enter キーを押し、再びオプション・メニューに戻ります。)

4. Tera Term で jbc ファイルを Flash にダウンロード

オプション・メニューから [5](5: Download a MAX 10 .jbc file to a specific personality)を選択し、Enter キーを押します。“ファイル・メニュー > ファイル送信” を選択します。“バイナリ”オプションを有効にして、作業2で作成した jbc ファイルを選び、“開く” ボタンを押します。

Article header teraterm 5  1

データ転送のインジケータが表示され、その後 Tera Term の画面上に “Enter two digit Personalitynumber (01 through 10)” とメッセージが表示されます。jbc ファイルをダウンロードしたい Flash のパーソナリティ(スロット)番号を2桁(例:07)で入力し、Enter キーを押します。

Article header teraterm 6  1

その後 Flash へのダウンロードが完了し、“--Press Enter to continue” のメッセージが表示されます。

ただ、この方法だと先ほどダウンロードした jbc ファイルにパーソナリティ名の情報がないために、オプション・メニューから [0] を選択し Enter キーを押して Flash メモリに保存されているパーソナル名を表示させても、パーソナル名は空欄のままです。そのため、自分自身でどの(つまり、何番の)パーソナリティにデータを保存したかを覚えておく必要があります。

Flash の既存パーソナリティ・ファイルを消去する場合には、オプション・メニューから [2](2: Erase a specific personality file slot)を選択してください。続けて消去するスロット番号(パーソナリティ番号)を指定し、消去してください。

 

Notes:

もし、パーソナリティ名を Tera Term 上に表示させたい場合には、jbc ファイルを bin ファイルに変換するときにパーソナリティ名を付けて生成すれば可能です。bin ファイルへの変換は、Odysseyアプリと連携する Odyssey Web Utility にオンラインでアクセスし作業を行ってください。Odyssey Web Utility はパーソナリティをカスタマイズしたり、自分オリジナルのパーソナリティを作ることが目的なので、今回のようにパーソナリティ名を付けるだけのため、と言うのは本来の使用目的ではないのですが、ま、こんな使い方もあり、と言うことで。
作成した bin を Flash に転送するときには、Tera Term で指定するオプション・メニューは [1](1: Download a personality file to flash)を使います。“ファイル・メニュー > ファイル送信” を選び、“バイナリ”オプションを有効にします。作成した bin ファイルを指定選んで “開く” ボタンを押してください。

5. Tera Term でFlash から 作業4 のファイルを読み出し、MAX® 10 に転送(プログラミング)

オプション・メニューから [6](6: Program MAX 10 using .jbc file from a specific personality)を選択します。続けて “Enter two digit Personality number (01 through 10)” とメッセージが表示されるので、作業4で保存したパーソナリティ番号を2桁(例:07)で入力し、Enter キーを押します。
以下のように、指定したパーソナリティに保存されているデータ情報が表示されます。

Article header teraterm 7  1

今回のデモでは、MAX® 10 をコンフィギュレーションさせたいので、0(CONFIGURE)を選択して Enter キーを押します。

下のように MAX® 10 のコンフィギュレーション・データが EFM32 を経由して転送が開始され、終了(DONE)したメッセージが表示されます。

Article header teraterm 8  1

  

6. いざ!Lチカを確認

作業5終了と同時に Odyssey を確認すると、デモ用デザイン通りLチカ(点滅)していることが確認できます。

Article header lchika  3

今回のデモでは、sof ファイルから jbc ファイルを作成していますので、JTAG を経由して MAX® 10 の CRAM に転送され直接コンフィギュレーションされていますが、もし pof ファイルから作成した jbc ファイルを使用した場合は、一旦 MAX® 10 の CFM に転送されて MAX 10 内部で CRAM へコンフィギュレーションされます。

先にも書きましたが、今回のデモでは jbc ファイルを MAX® 10 の CRAM に転送しています。そのため Odyssey の電源を OFF してしまえば、(MAX® 10 の CFM が空っぽなら)再び電源を ON にしても動作はしません。もし、CMF にあらかじめコンフィギュレーション・データが書き込まれている、あるいは今回のデモを参考に pof ファイルから jbc ファイルを作成して JTAG 経由でデータを転送した場合には、Odyssey の電源を OFF しても CFM は消去されませんので、電源再投入後に CFM の内容がコンフィギュレーションされ MAX® 10 は動作し始めます。




Odyssey 上の MAX® 10 の CFM にプログラミングしたコンフィギュレーション・データを消去したい場合には、2通りの方法があります。

消去方法1. USB-Blaster™ II および Quartus® Prime の Programmer を使って消去する
消去方法2. micro-USB と Tera Term を使って消去する

まずは [消去方法1] です。

(この記事のデモを試すユーザーさんの中で USB-Blaster™ II を持っている人は少ないと思いますが、一応書いておきます。)
MAX® 10 にプログラミングをする要領で Odyssey と USB-Blaster™ II をセッティングし、Quartus® Prime の programmer 画面で、USB-Blaster™ II(Hardware Setup 設定)と MAX® 10 デバイス(Add Device ボタン)を指定したら、プログラミング・オプションの “Erase” を有効(On)にして Start ボタンをポチっ!

Article header erase programmer  3


画面右上の Progress バーが 100%(Successful)になり、Messages ウィンドウに下記のインフォメーションがアナウンスされれば消去完了です。

Article header erase programmer msg  2

続いて [消去方法2] は、今回のデモの応用です。

Tera Term を使って転送する jbc ファイルを、pofファイルから作成します。
デモの作業1で選択するファイルに pof ファイルを使用し、作業2で jbc ファイルを作成します。作業3で Tera Term を使って EFM32 に接続し、作業4で pof ベースの jbc ファイルを Flash に転送します。作業5で Flash から pof ベースの jbc ファイルを読み出すと、Tera Term の画面上に jbc ファイルに記録されているファイル情報に加え、MAX® 10 のCFM に対して実行する各種インストラクションが確認できます。この中に、CFM を消去する ERASE インストラクションが用意されているので、コレ(オプション[3])を使います。

Article header erase teraterm  3

消去(Erase)が完了すると、そのことを示すメッセージが表示されます。Odyssey を見て、消去されていることを確認してください。

Osyssey なら、MAX® 10 FPGA を専用ダウンロード・ケーブル USB-Blaster™ II が無くても、こんな感じで FPGA にデータを転送できちゃうんです!!どうです?便利でしょう。
いずれ自作ボードで FPGA 開発をするには USB-Blaster™ II が必要にはなりますが、今 USB-Blaster™ II が手元に無くても Odyssey を使って FPGA をいち早く評価したいと言う場合には、今回の方法は「あり」だと思います。


関連商品