FX3のカスタム USB ブートローダ - KBA218343 - Community Translated (JA)

Version 1

    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 を設定します。