1 Reply Latest reply on Apr 19, 2020 7:21 PM by JuyoungJ_06

    Community Translation - FX3 as Custom USB Bootloader - KBA218343

    JuIn_1625121

      タイトル:

      FX3のカスタム USB ブートローダ - 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 を設定します。