NanoBoardファームウェアの更新
Application Note AP0105 (v2.0) February 28, 2008
NanoBoard-NB1 のインテリジェンスは、ボードの NanoTalk コントローラ内で動作するファームウェアによって提供されています。 このアプリケーションノートは、電源投入時に NanoTalk コントローラにロードされる、このファームウェアを更新する方法について説明しています。
NanoBoard のファームウェアは、ボードの電源を投入したときに、NanoTalk コントローラにロードされるプログラムです。 NanoBoard-NB1 には Xilinx Spartan IIE-100K デバイス(XC2S100E)がボードのコントローラとして使用されています。 NanoTalk コントローラに関して、このデバイス(ボードの U8 )は、以下のデバイスとの JTAG 接続を管理しています。
- FPGA ドータボード
- マスタ/スレーブのデイジーチェーン
- ユーザボードとの接続(A と B)
- フラッシュ RAMs (U6 と U7)
- SPI マスタクロック.
NanoTalk コントローラは、また、以下の2つのボードのエリアも管理しています。
- LEDs SL1-SL8
- JP2 上の以下のジャンパ線
- AUTO LOAD FPGA
- CLOCK0
- CLOCK1
- CLOCK2
- USER A - BYPASS SOFT
- USER B - BYPASS SOFT
- TEST 0
- TEST 1
NanoTalk コントローラにロードされるファームウェアは、ザイリンクスシリアル PROM デバイス(XCF01S)に保存されています。 これは、ボード上の U5 にあります。
電源を入れると、ファームウェアは自動的に NanoTalk コントローラにロードされます。
更新前の準備
ファームウェアの新しいバージョンがシリアル PROM にダウンロードできるようになる前に、NanoBoard には以下のような準備が、まず必要です。
- NanoBoard の電源を切ります。
- プラグインされている FPGA のドータボードをすべて取り外します。
- NanoBoard の JP2 - SYSTEM JTAG 間(パラレルケーブルコネクタの左下)にジャンパ線を挿入します。 これは特定機能用のジャンパ線で、挿入されると、NanoBoard のコントロールを切り替えて、NanoTalk コントローラ(Spartan IIE-100K)から、NanoTalk コントローラとザイリンクス PROMに関連するシンプルなハードウェアチェーンに移します。 これらは、Devices ビュー内の Hard Devises(Figure 1)に表示されます。
- NanoBoard の電源を入れます。
PROMの消去
まず、Altium Designer の Devices ビューを開きます。 Live チェックボックスにおいて、auto-board-recognition system が有効になっていることを確認します。
ジャンパ線を挿入すると、ザイリンクスのシリアル PROM デバイスが Hard Devices チェーンに表示されます。
図 1. シリアル PROM デバイスへのアクセス
ザイリンクスシリアル PROM はフラッシュメモリデバイスです。 新しいファームウェアがプログラムされる前に、その内容をクリアしておく必要があります。 これを実行するには、Hard Devices チェーン内のアイコン(Platform Flash)の上で右クリックし、Reset Hard Device をポップアップメニューから選びます。
消去プロセスが進行するにつれて、進行状態がAltium Designer のステータスバーに表示されます。 処理が完了するまで、15秒ほどかかります。
新しいファームウェアのダウンロード
ザイリンクスシリアル PROM デバイスの設定は、PROM ファイルに、MCS-86 のフォーマットで保存されています。 これは、ASCII の16進数ファイルで、拡張子は mcsです。
新しい設定をダウンロードするには、Devices ビューの Hard Devices チェーン内で PROM 用アイコンを右クリックし、Choose File and Download をポップアップメニューから選択します。
Choose Programming File For Xilinx XCF XCF01SSVO20C ダイアログが表示されます。 ダイアログを操作して、目的のプログラミングファイル(.mcs)を探し出し、Open{*}をクリックします。 デフォルトでは、Altium Designer がインストールされているフォルダの \System ディレクトリに、目的のファイルがあります。
確認のダイアログが表示され、(PROMの)プログラムを検証するかどうか聞いてきます。 この段階では、新しいファームウェアはダウンロードされていません。 Yes をクリックすると、ダウンロードと検証のサイクルに進みます。
ダウンロードと検証は、完了するのに30~40秒ほどかかります。 進行状況は、Altium Designer のステータスバーに表示されます。 サイクルが終了すると、情報ダイアログが表示され、ダウンロードの結果が示されます。
サイクルの途中でエラーが発生した場合は、警告するダイアログが表示されます。 エラーが発生した場合は、NanoBoard の電源を切り、数秒後に、もう一度最初からすべてのプロセスをやり直します。もちろん、PROM メモリの消去も行ってください。
NanoBoardのテスト
ザイリンクスシリアル PROM デバイスのプログラミング成功したら、以下の手順で新しいファームウェアをテストしてください。
- NanoBoard と FPGA ドータボードの電源を切ります。
- JP2 - SYSTEM JTAG からジャンパ線を取り除きます。
- NanoBoard の電源を入れます。
- Live チェックボックス(Devices ビューのトップにあります)が有効(auto-board-recognition)になっていることを確認してください。
- Devices ビューで、F5(リフレッシュ)を押します。 これで、ハードウェアのスキャンが始まり、現在どのデバイスが接続されているかが検出されます。 接続済みの NanoBoard 用 NanoTalk コントローラは、自動的に検出され、NanoBoard チェーンに表示されます。 現在、コントローラに使用されているファームウェアのバージョンは、 コントローラアイコンのすぐ下にあります(図では、V1.1.18)。 ドータボード上の FPGA デバイスは、自動的に検出され、Hard Devices チェーンに表示されます。
- Nexus対応のデバイス(マイクロプロセッサ、カウンタ、ロジックアナライザなど)を含む FPGA プロジェクトを開いて、 ドータボード上の FPGA をプログラムします。 これが、Soft Devices チェーンが機能的に正しいことのテストになります。
ハードデバイスチェーン、ソフトデバイスチェーン、NanoBoard コントローラチェーンに表示されたドータボード上の FPGA デバイス
図2 ターゲット FPGA デバイスの検出と Soft Devices チェーンのテスト
- FPGAで実行するデザインを選び、NB1アイコン(Devices ビュー内のNanoBoard チェーンの中)をダブルクリックします。 NanoBoard コントローラ用の計器ラックが表示されます。 この計器パネルを使用して、システムのクロック周波数を変更します。 これで、新しいクロック周波数がシステムクロックに書き込まれました。SPIデバイスが正しく動作しているか、通信テストを行います。
新しいクロック周波数の書き込みと同様に、クロック値もNanoTalkコントローラに保存され、変更を検証するために読み込まれます。 新しい周波数は、デザインセッションの間、ソフトウェアに対して保持されます。ただし、ハードウェアセッションでは保持されません。 したがって、アプリケーションを閉じたり、FPGAプロジェクトを再起動したり、開いたりすると、最後に入力したクロック周波数が使用されることになります。 しかし、NanoBoardの電源をオンオフすると、デフォルトのクロック周波数(50MHz)が使用されることになります。これは、選んだ周波数を保存しているNanoTalkコントローラ内のレジスタは、電源オフによってクリアされるからです。