FX3 GPIF IIをシリアルモードで構成する - KBA229814 - Community Translated (JA)

Version 1

    Community Translated by  NoTa_4591161 Expert         Version: **

     

    Translation - English: Configuring FX3 GPIF II in Serial Mode – KBA229814

     

    質問1GPIF IIをシリアルモードで構成するにはどうすればよいですか?

     

    回答: FX3GPIF IIインターフェイスは、マスターまたはスレーブとして機能する柔軟なインターフェイスでプログラム可能なステートマシンです。GPIF IIでは、パラレルインターフェイスとシリアルインターフェイスの両方を実装できます。GPIF IIのインターフェイスは、データをシリアルに受信または送信するように設定できますが、この設定はGPIF II Designerツールから直接行うことはできません。したがって、設定は手動で行う必要で、生成されたヘッダーファイルを次のように変更します。

    1. インストールされていない場合は、https://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kitからEZ-USB FX3 SDKをインストールします。
    2. EZ-USB FX3 SDKGPIF II Designerツールを使用して、GPIF Designerプロジェクトを作成およびビルドします。GPIF II Designerツールの使用については、<FX3 SDK インストールパス>\Cypress\EZ-USB FX3 SDK\1.3\docにあるGPIF II Designerユーザーガイドを参照してください。
    3. 生成されたGPIFヘッダーファイルで、CyFxGpifRegValue []に次の変更を加えます。
      1. CY_U3P_PIB_GPIF_CONFIGレジスタのビット7とビット14 を「1」に設定します。たとえば、CY_U3P_PIB_GPIF_CONFIGの値が0x80008330の場合、0x8000C3B0に変更します。

     

    質問2GPIF IIをシリアルINモードで構成するにはどうすればよいですか?

     

    回答: GPIF IIのインターフェイスをシリアルモードで設定した後(Q1への回答で述べたように)、GPIF IIのインターフェイスはシリアルINまたはシリアルOUTとして設定できます。GPIFをシリアルINモードで設定するには、CY_U3P_PIB_GPIF_SERIAL_IN_CONFIGレジスタで必要な変更を行う必要があります。このレジスタの設定については、表1を参照してください。

    このレジスタを使用すると、SERIAL_MODEDQ [14]でシリアル入力インシデントを設定できます。

    1 GPIF_SERIAL_IN_CONFIG

    ビット

    名前

    説明

    ビット0

    ENABLE

    1SERIAL_MODEでシリアル入力を有効にする
    0
    :シリアル入力を無効にする

    ビット1

    SOCKET_MODE

    このビットを「1」に設定して、選択したGPIFスレッドに対応するソケットをシリアルデータのデータシンクとして設定します

    ビット32

    THREAD_NUMBER

    シリアルデータのデータシンクのスレッド番号を指定します

    ビット64

     

    予約

    ビット7

    PACK

    FRAME_MODE = 0の場合のみ、パッキングが行われます。

    1」に設定:

    • ワードが1248、または16ビット長の場合、ソケットにコミットする前に32ビットのフィールドにパックされます。他のワードサイズは、MSBで次のバイトまたはハーフワード(16ビット)までゼロが埋め込まれ、32ビット値にパックされます。
    0」に設定:
    • MSBにゼロを埋め込み、形成されたらすぐに個々のワードをプッシュします。

    ビット98

    FRAME_MODE

    0 WORD_SIZEベース

    1 ** SOFからSOF

    2 ** SOFからEOF

    ビット14:10

    WORD_SIZE

    これは、シリアルインターフェイスの場合、WORD_SIZE-1として設定する必要があります。たとえば、「0」に設定されている場合、1ビットがワードとして形成されることを意味します。「9」に設定すると、10ビットで1ワードになります。

    16:15

     

    予約

    17

     

    予約

     

    注: ** SOFおよびEOFは、FRAME_MODEWORD_SIZEベースとして設定されていない場合のインターフェイス信号です。

    SOF:フレームの開始

    EOF:フレームの終わり

    a. GPIF IIがシリアル入力用に設定されている場合

    1. ピンDQ [9]SOFです

    2. ピンDQ [8]EOFです

    b. GPIF IIがシリアルOUT用に設定されている場合

    1. ピンDQ [13]SOFです

    2. ピンDQ [12]EOFです

     

    質問3 GPIF IIをシリアルOUTモードで設定するにはどうすればよいですか?

     

    回答: GPIF IIインターフェイスをシリアルモードで設定した後(Q1への回答で述べたように)、GPIF IIをシリアルOUTとして設定するには、KBAhttps://community.cypress.com/docs/DOC-18272を参照してください。

     

    質問4 シリアルモードのGPIF IIで使用できるコード例はありますか?

     

    回答: シリアルモードでFX3を設定するには、ファームウェアが含まれている添付のFX3フォルダーを参照してください。共有ファームウェアを使用して、2つのFX3デバイスをシリアルモードで11(送-受)にて構成することができます。

    UsbtoGpifファームウェアは、シリアル出力転送に使用できます シリアルトランスミッター

    • CY_U3P_PIB_GPIF_SERIAL_OUT_CONFIG0x00001F83
      • ビット[0]シリアルOUTが有効
      • ビット[3:2] シリアルデータ出力をポップアウトするためのソケット0が設定
      • ビット[12:7] パッキングが有効。ワードサイズを32ビットに設定
      • ビット[13:22]およびEOFのオフセットなし

    GpiftoUsbファームウェアはシリアル入力転送に使用できますシリアルレシーバー

    • CY_U3P_PIB_GPIF_SERIAL_IN_CONFIG0x00007D83
      • ビット[0]シリアル入力が有効
      • ビット[3:2] ソケット0は、シリアルデータを受信するように設定
      • ビット[7:9] パッキングが有効。フレームモードをSOFからSOFに設定
      • ビット[14:10] ワードサイズを32ビットに設定(これは、シリアルトランスミッターのワードサイズ設定に従って設定する必要があります)

     

    以下を行います:

     

    1. 1に示すようにデバイスをセットアップします。

    1. GPIF IIのシリアルモードで11にて接続されたFX3デバイス

    1.png 

    2. EzUSB FX3 SDKには、ダウンロードされたFX3デバイスへのファームウェアやデータ転送のテストに使用されるコントロールセンターユーティリティが含まれています。詳細については、FX3 SDK入門を参照してください[パス::FX3 SDKインストールパス\Cypress\EZ-USB FX3 SDK\1.3\doc]

    3. 両方のFX3デバイスをそれぞれのイメージ(.img)ファイルでプログラムします。

    4. コントロールセンターアプリケーションを使用して、EzUSB FX3 SDKで、BULK-OUTエンドポイントを介してデータを送信します。

    5. 3に示すように、データを送信した後、BULK_INエンドポイントを介してコントロールセンターアプリケーションでデータを受信します。

     

    注:このドキュメントと共有されているGpifToUsbファームウェアのGPIFステートマシンは、SDKGpifToUsbファームウェアのステートマシンと同じです。GPIF IIによってサンプリングされたデータは、バッファがいっぱいの場合、つまり、サンプリングされたデータがDMAバッファサイズの倍数である場合にのみ、USB(コンシューマ)にコミットされます。DMAバッファサイズはUSB速度に依存します。つまり、DMAバッファサイズは、USB 3.0の場合は1024バイト、USB 2.0の場合は512バイトです。

    転送されたデータがバッファサイズの倍数でない場合、コントロールセンターでエラーコード997(タイムアウトエラー)が発生します。

    コントロールセンターを介したデータ転送の結果は次のとおりです。

     

    2.コントロールセンターを介した32バイトのAの転送

    2.png 

    FX3トランスミッターから送信されたデータ(シリアルOUT)  FX3レシーバーによって受信されたデータ(シリアルイン)

     

    3.コントロールセンターを介したデータ転送

      3.png

    4.png