- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I want to translate KBA228346, please confirm to my work.
Regards,
Nino
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, Nino-san
Confirm to work.
Thanks,
Jenna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- タイトル:FX3のGPIFにシリアルOUTインターフェースを設定する - KBA228346
バージョン 1
ChaitanyaV_61が 2019/09/24 23:59 に作成。ChaitanyaV_61が 2019/09/24 23:59 に変更。
Author: HemanthR_06 Version: **
GPIFインターフェースは外部ペリフェラルにシリアルにデータを転送するために設定可能ですが、GPIF II設計者ソフトウェアではこの設定はできません。従って、GPIF II設計者が作成したヘッダーファイルを修正し、手動で設定する事になります。
- GPIF設計者プロジェクトを生成し、ビルドする。
- 作成したGPIFヘッダーファイルで、CyFxGpifRegValue[]に下記の変更を施す:
- ビット7およびCY_U3P_PIB_GPIF_CONFIGレジスタのビット14を1にセットする。
例えば、CY_U3P_PIB_GPIF_CONFIGの値が0x80008330の場合、0x8000C3B0に変更する。
- CY_U3P_PIB_GPIF_SERIAL_OUT_CONFIGレジスタ(表1参照)に必要な変更を施す。異なる設定を選択した場合のシリアルデータの送信方法については表2を参照して下さい。
注意: GPIF II 設計者ソフトウェアではシリアル設定が容易でないため、これらのレジスタ変更は、GPIFヘッダーファイルがGPIF設計者によって生成された後に自動的に作成されます。
GPIFシリアルモードレジスタのC:\Program Files (x86)\Cypress\EZ-USB FX3
SDK\1.3\firmware\fx3_sdk_1_3_4_src\sdk\firmware\include\gpif_regs.hを参照して下さい。
表1
ビット | 名前 | 記述 |
ビット0 | GPIF_SEROUT_ENABLE | 1: SERIAL_MODEでシリアル出力を有効 0: シリアル出力を無効 |
ビット1 | GPIF_SEROUT_SOCKET_MODE | シリアルデータのデータソースとして選択されたGPIFスレッドに関連するソケットを設定するためにこのビットを‘1’にセット |
ビット3:2 | GPIF_SEROUT_THREAD_NUMBER_MASK | シリアルデータのデータソースのスレッド数を記述 |
ビット4-6 | 予備 | |
ビット 7 | PACK | ‘1’に設定した場合: ワードが1、2、4、8または16ビット長の場合、ソケットに充てる前に32ビットフィールドに入れて受信されます。他のワードサイズはMSBで次のバイトまたはハーフワード(16-ビット)にゼロ詰めされて受信し、32-ビット値に入れられます。 ‘0’に設定した場合: 全ての32ビット値はサイズに関係なく1つのワードのみとなります。 |
ビット 8-12 | ワードサイズ | ‘0’の設定は、1ビットはワードとして構成されます; 9は10ビットで1ワードを構成することを意味します。ワードの最初のビットはSOF(フレームの開始)が生成されます; 最後のビットではEOF(フレームの最後)が内部ハードウェアによって生成されます。SOF、EOFおよびそれらのオフセットバリアントはDQラインに接続されます。 |
注意:
GPIFがシリアル通信に設定されると、ピン設定が下記のように変更になります:
- DG[15] - シリアル出力; DQ[13] – SOF信号; DQ[12] – EOF信号
表2
フレーム内のビット数 | ワードサイズフィールド | パック | コメント |
1 | 0 | 1 | シリアル出力データは32ビットでゼロ詰めされます。GPIFシリアル出力のデータソースはCY_U3P_PIB_SOCKET_X として構成されます(例えば、DMAチャネル生成で提供されたコンシューマーソケットはCY_U3P_PIB_SOCKET_X 例えば、0x8181がソケットにコミットされている場合、GPIFシリアル出力は0x00008181になります。これはMSbがゼロ詰めされていることを意味します。従って、詰める必要がないのであれば複数の32ビット(例えば4バイト)のデータのコミットを確認して下さい。 |
2 | 1 | ||
4 | 3 | ||
8 | 7 | ||
16 | 15 | ||
32 | 31 | ||
上記にないもの | (フレーム内のビット数) -1 | 例1: フレームに送られるビット数は5です(ワードサイズフィールドは4に設定される必要があります)。ソケットに0xABC10001ABC10010ABC10100ABC11000(ABCは‘0’か‘1’)をコミットする場合、シリアル出力データは0x10001100101010011000になります。: LSbファーストで送信されます。 例2: フレームで送られるビット数は13です(ワードサイズフィールドは12に設定する必要があります)。 ソケットに0xABC1000101010010ABC1010010011000(ABCは‘1’か‘0’)をコミットする場合、シリアル出力データは0x10001010100101010010011000となります: LSbファーストで送信されます。 従って、詰める必要がないのであれば複数の32ビット(例えば4バイト)のデータのコミットを確認して下さい。 | |
X | X-1 | 0 | コミットデータから、最初のカラムに定義されたビット数のみが送信されます; 残りのデータは次にコミットされる32ビットワードまで切り捨てられます。 |
下記例は、異なるワードサイズが選択され、かつPACKが‘1’に設定された時の、GPIFインターフェース経由でのデータの送信を示しています:
下記の図ではデータはシリアル出力データを示しています。ビットはLSbファーストで送信されています。
- ワードサイズフィールド: 1(例えばフレームのビット数: 2); PIBソケットへコミットされたデータ: 0x8181:
- ワードサイズフィールド: 3(例えばフレームのビット数: 2); PIBソケットへコミットされたデータ: 0x8181:
3. ワードサイズフィールド: 4; PIBソケットへコミットされたデータ: 0x8181:
4. ワードサイズフィールド: 9; PIBソケットへコミットされたデータ: 0x81818181:
5. ワードサイズフィールド: 18; PIBソケットへコミットされたデータ: 0x81818181:
下記の例は異なるワードサイズが選択され、かつPACKが‘0’に設定された時にGPIFインターフェース経由でデータが送られた様子を示しています:
- ワードサイズフィールド: 1; PIBソケットにコミットしたデータ: 0x000000003(2nd) 0x000000001(1st) (2つの32ビットワード):
2. ワードサイズフィールド: 3; PIBソケットにコミットしたデータ: 0x00000000D(2nd) 0x00000000C(1st) (2つの32ビットワード):
3. ワードサイズフィールド: 4; PIBソケットにコミットしたデータ: 0x00000001D(2nd) 0x00000000C(1st) (2つの32ビットワード):
184 閲覧 カテゴリ: USB: SuperSpeed Peripherals タグ: serial, fx3, gpif ii, ss_usb, serial out