MAX10 Serial Config Updaterは、MAX10のデュアルイメージコンフィグレーション機能を用いて、一般的なUSBシリアルを使用して内蔵コンフィグレーションフラッシュメモリを書き換えるツールセットです。
最初のMAX10デバイスへブートローダーの書き込みにはUSB-Blasterが必要ですが、ブートローダーが書き込まれたMAX10デバイスへはUSBシリアルでコンフィグレーションデータの書き込みが可能になります。
書き込みツールはChromeアプリで提供され、Windows/Linux/Chromebook上のChromeであればOSを問わず利用が可能です。
MAX10 Serial Config Updaterは以下の環境で動作します。
またユーザープロジェクトの作成には下記の環境が必要です。
OSサポートの詳細に関してはAlteraのオペレーティング・システム・サポートを参照してください。
FTDIのダウンロードページでVCPドライバをダウンロードしてインストールします。詳細手順はこちら。
COMポートが認識されたら、デバイスマネージャーから該当COMポートを右クリックしてプロパティを開きます。
ポートの設定の詳細設定ボタンをクリックします。
BMオプションの待ち時間を16ms→1msへ変更してOKボタンで反映させます。
この設定はWindowsのみです。Linuxカーネル2.6以降ではFTDIのVCPが入っているため、LinuxおよびChromebookではUSBシリアルケーブルを接続するだけで使えます。
Chromeブラウザのアドレスバーで「chrome://extensions」と入力するか、右上の設定ボタンから「その他のツール→拡張機能」を選択して拡張機能のページを開きます。
rpdwriterフォルダ以下のmax10_rpdwriter.crxファイルをこのページにドラッグ&ドロップしてインストールします。
下記のメッセージパネルが出るので、アプリを追加をクリックします。
Chromeブラウザのアドレスバーで「chrome://apps」と入力してアプリページを開き、「MAX10 RPD-Writer」が追加されているのを確認してください。
Altera 10M08 Evaluation Kit用のブートローダーイメージは下記のフォルダに格納されています。
max10_config_updater/qsf/10m08eval/bootloader/
このフォルダにあるgeneric_10m08_top.pofをQuartus Programmerでボードへ書き込みます。
POFファイルの書き込みにはUSB-Blasterが必要です。
Quartus ProgrammerではCFM0のProgramのみチェックを入れ、CFM1とUFMはEraseをチェックして書き込みを実行してください。
ホストPCにUSB-シリアルケーブルを接続し、TXD、RXD、GNDを図のように接続します。
CONFIG_SELのDIPスイッチをOFF(BOOT側)にセットしてUSB-miniBを接続して電源を入れます。
Chromeアプリページから「MAX10 RPD-Writer」をクリックして書き込みツールを起動します。
ボードに接続したシリアルポートを選択して、接続をクリックします。
MAX10のブートローダーが認識されれば緑色のチェックアイコンが表示されます。
コンフィグレーションデータを更新する場合はCFM、ユーザー領域データを更新する場合はUFMのファイル選択ボタンで書き込むファイルを選択します。
v0.1.0では特に書き込むファイルのチェックはしていません。CFMはQuartusで生成されるrpdファイルを指定してください。
またUFMはrpdファイルの他、32kバイト以内の任意のファイルを指定することができます。
ファイル選択後、書き込みボタンをクリックするとデータの更新を開始します。
データ更新中はシリアルケーブルを抜いたり、ボードの電源を切らないように注意してください。
書き込みが成功するとチップアイコンが青色になります。
切断をクリックしてシリアル接続を解除してから、ボード上のCONFIG_SELをON(USER側)にセットしRECONFIGボタンを押すと、書き込んだデータでMAX10が再コンフィグレーションされます。
下記はコンパイル済みのAltera 10M08 Evaluation Kit用のサンプルコンフィグです。CFMを書き換えてLEDの点滅が変わるのを確認できます。
max10_config_updater/rpdwriter/sample_rpd/blink_cfm1_auto.rpd
max10_config_updater/rpdwriter/sample_rpd/lampy_cfm1_auto.rpd
以降は、ユーザーでプロジェクトを作成する場合の手順になります。
MAX10 Serial Config Updaterでの書き込みに対応するには、デュアルコンフィグレーション対応のプロジェクトを作成する必要があります。
Quartusでプロジェクトを作成後、Device→Device and Pin Options...を開き、Generalの「Enable CONFIG_SEL pin」にチェックを入れます。
ConfigurationのConfiguration modeを「Dual Compressed Image」に変更します。
次に、サンプルプロジェクトのdualboot_ipフォルダを、新しく作成したプロジェクトフォルダにコピーします。
qsfファイルをテキストエディタで開き、下の2行を追加して保存します。
set_global_assignment -name QIP_FILE dualboot_ip/dual_image_boot/synthesis/dual_image_boot.qip set_global_assignment -name POST_MODULE_SCRIPT_FILE "quartus_sh:dualboot_ip/auto_generate_dualboot_rpd.tcl"
これでコンパイル後にRPD-Writerで書き込めるRPDファイルが生成されるようになります。
RPDファイルはプロジェクトフォルダのoutput_files以下に「<プロジェクト名>_cfm1_auto.rpd」という名前で生成されます。
MAX10 Serial Config UpdaterではMAX10のデュアルコンフィグ機能を利用しているため、作成するユーザープロジェクトは以下の制約を受けます。
generic_10m08ブートローダーはAltera 10M08SAデバイス汎用で使うことができます。
下記の要件を満たすボードであればピンアサインを変更するだけで対応が可能です。
bootloader以下のgeneric_10m08_top.qarをQuartusで展開し、デバイスとピンアサインをボードに合わせて変更してください。
ブートローダーのコンパイルではsofまでしか生成されないので、Convert Programming fileで書き込み用のPOFに変換が必要です。
MAX10 Serial Config Updaterは下記リポジトリからダウンロードできます。
MAX10 Serial Config Updater
本ソフトウェアパッケージはMITライセンスの元に発行されています。
The MIT License (MIT)
ただし各々のソースに対し、別途個別に明記ある場合はそのライセンスを優先するものとします。
また本パッケージにはAltera社のツールにより自動生成されたファイルが含まれます。
Quartusプロジェクトフォルダ以下のファイルについてはAltera社のライセンス条項を確認してください。