FX3のカスタム USB ブートローダ - KBA218343 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by JuIn_1625121 Version: **
Translation - English: FX3 as Custom USB Bootloader - KBA218343
質問:
FX3をカスタムUSBブートローダデバイスとして設定するにはどうすればいいですか?
回答:
FX3のブートオプションとブート可能なイメージフォーマットはAN76405に記載されています。FX3 デバイスを初めて使用する場合は、アプリケーションノートに目を通すことをお勧めします。
下の表は、FX3で可能なブートオプションを示しており、AN76405で詳細に説明されています。
設計段階では、ファームウェアのロードとテストを容易にするために、ユーザーはUSB ブートオプションを好みます。一般的に、FX3 が USB ブートオプション (PMODE [2:0] = Z11) に設定されて接続されると、デフォルトの VID が 0x04B4、PID が 0x00F3 の Cypress ブートローダデバイスとしてエニュメレートされます。これがデフォルトのUSBブートローダです。しかし、ユーザーによっては、FX3 が USB ブートオプションに設定されているときに、カスタムした名前、VID、PID でエニュメレートされるのを見たいと思うかもしれません。これはカスタムUSBブートローダと呼ばれています。
カスタム USB ブートローダを正常にエニュメレーションするには、この手順に従ってください。
1. ドライバの.infファイルをカスタムした名、VID、PIDで更新します。これは、FX3 SDKのドキュメントフォルダにあるCyUsb3.sys Programmer's Reference Manual (CYUSB.pdf)に記載されています。デフォルトのSDKのインストールパスは、
64-bit Windows: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\SuiteUSB
32-bit Windows: C:\Program Files\Cypress\EZ-USB FX3 SDK\1.3\doc\SuiteUSB
2. FX3 デバイスにカスタムブートローダに必要な変更を実装するには、2 つの方法があります。以下の2つの方法のいずれかを使用することができます。
a. 0xB2イメージの使用とUSBフォールバックでのPMODEの設定
0xB2 イメージは 8 バイトで構成される特別なイメージタイプで、FX3 ファームウェアイメージの代わりに、EEPROM または SPI フラッシュ上のデータがカスタムUSB ブート用の VID と PID であることを示すために使用されます。これは、カスタム USB ブートローダ用の新しい VID と PID を持つのに役立ちます。
0xB2 イメージの例は下の通りです。
Location1: 0xB2 0x1A ’Y’ ’C’ //CY Signature,32k EEPROM,400Khz,0xB2 Image
Location2: 0x04B40008 // VID = 0x04B4 | PID=0x0008
0xB2 イメージ用の PMODE の設定は以下の通りです。
1. PMODE [2:0] = Z1Z, I2C Boot with USB Fallback
2. PMODE [2:0] = 0Z1, SPI Boot with USB Fallback
注記:I2C または SPI 通信にエラーがある場合、FX3 はカスタムブートローダデバイスではなく、Cypress ブートローダデバイスとして表示されます。
下の条件の場合、I2C EEPROMのブートに失敗します。
- I2Cアドレスサイクルまたはデータサイクルエラー
- 無効なFX3 ファームウェアの署名
- 無効なイメージタイプ
下の条件の場合、SPIのブートに失敗します。
- SPIアドレスサイクルまたはデータサイクルエラー
- 無効なFX3 ファームウェアの署名
- 無効なイメージタイプ
b. 二段階ブートローダの使用 二段階ブートローダの実例となるファームウェアは、以下のディレクトリで提供されています。 C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\boot_fw\src (the default EZ-USB FX3 SDK installation path) マクロは3つの可能なブートオプションのためにmain.cファイルで定義されています。
- USBブート
- I2C EEPROM
- SPI Flash/EEPROM
FX3 をカスタム USB ブートローダとしてエニュメレートするには、USBデバイス記述子にカスタム VID と PID を指定し、USB ブートマクロを定義し、二段階目のブートローダの main.c ファイルにその他のコメントを記述します。次に、二段階目のブートローダのイメージファイルをEEPROM/Flashにロードし、PMODEの行をI2C EEPROMの場合はPMODE[2:0]=Z1Zまたは1ZZに、SPI Flashの場合はPMODE[2:0]=0Z1に設定します。FX3 がホストに接続されると、ROM ブートローダはPMODE の設定に従って 二段階目のブートローダをロードし、カスタム VID/PID のカスタムブートローダでFX3 を設定します。