FX3 FAQs - KBA224051 (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Author: HirotakaT_91 Version: *G
ハードウェアに関するご質問
Question: FX3のデータシートには、VBATT/VBUSの絶対最大定格が書かれていませんが、6 Vを超えても大丈夫でしょうか?
Answer: いいえ。動作条件でVBATT電源電圧を3.2 V~6 Vと規定しているため、6 Vを超えないでください。
Question: FPGAから3.3Vの電圧が供給されたとき、CYUSB3KIT-003上で1.2 Vに変換できますか?
Answer: FPGAから供給された電圧をレギュレートする機能はFX3にはありません。
Question: FX3とHX3のSuperSpeed信号線を接続する時、これらの信号線にそれぞれESDデバイスを接続しなければなりませんか?
Answer: いいえ、必須ではありません。HX3には最大2.2 kV (HBM) の内蔵ESDがあります。追加で保護が必要な場合のみ、ESDデバイスをFX3側のSuperSpeed信号線に接続できます。
Question: Microchip 24LC256 EEPROMのアドレスはどのようになっていますか?AN76405にある24LC1024デバイスのように示してくれませんか?
Answer: FX3は最大8つのMicrochip 24LC256と接続が可能です。例として、表 1に4つのMicrochip 24LC256 EEPROMと接続した時のアドレスを示します。
表 1
Device No. | Address Range | A2 | A1 | A0 | Size |
1 | 0x00000-0x07fff | 0 | 0 | 0 | 32 KB |
2 | 0x08000-0x0ffff | 0 | 0 | 1 | 32 KB |
3 | 0x10000-0x17fff | 0 | 1 | 0 | 32 KB |
4 | 0x18000-0x1ffff | 0 | 1 | 1 | 32 KB |
製品の詳細についてはMicrochipの24LC256のデータシートを参照してください。
Question: PCBレイヤの推奨数はありますか?
Answer: 少なくとも4層のPCBを推奨しています。PCB層の最大数に制限はありません。
Question: ESD試験を実施した後に停止するのはなぜですか?
Answer: 試験の方法を再度確認し、適切に試験を行ってください。
FX3にはD+/D-およびGNDピンに、以下のESD保護が組み込まれていることに注意してください。
- JESD22-A114 仕様に基づいた ± 2.2 kV 人体モデル(HBM)
- IEC61000-4-2 レベル 3A に基づいた ± 6 kV 接触放電および ±8 kV エアギャップ放電
- IEC61000-4-2 レベル 4C に基づいた ± 8 kV 接触放電および ±15 kV エアギャップ放電
SSRX+、SSRX-、SSTX+、SSTX-ピンは最大±2.2 kV 人体モデル(HBM)を備えています。これらのSuperSpeed差動信号線は±2.2 kV HBMのみを備えているため、シリコンはIEC61000-4-2 レベル 3A およびレベル4Cの試験を外部のESD保護回路無しでは受けられません。
ESD保護が組み込まれていないピンにもESD保護が必要であれば、ESD保護回路を外部に接続してください。
もしHX3のようなハブを介してFX3を使う場合、ハブのESD保護についても考慮してください。
Question: 消費電力を削減するための推奨方法はありますか?
Answer: 必要なGPIOのみを使用してください。GPIF-II信号線を短くして配線容量を削減してください。GPIF-IIスループットは低下しますが、GPIF-II PCLKの周波数を下げることも効果的です。ファームウェアをローパワーモードへ変更することも役立ちます。ファームウェアのパワーモード変更については \Cypress\EZ-USB FX3 SDK\1.3\doc\firmwareにあるFX3APIGuide.pdfのCyU3PSysEnterStandbyMode()またはCyU3PSysEnterSuspendMode()を参照してください。
Question: 使用していないGPIOピンは未接続のままにすることができますか?
Answer: 使用しないGPIOピンについては、未接続のままにすることができます。
Question: 水晶発振器の代わりに外部クロックをXTALINピンに接続することができますか?
Answer: いいえ、XTALINピンに外部クロックを接続してはいけません。FX3では、XTALINピンとXTALOUTピンの間に水晶発振器を接続するか、CLKINピンに外部クロックを接続するか、どちらかが可能です。また、水晶発振器または外部からFX3への不安定な入力クロックは、FX3の異なる内部ブロックへのすべての派生クロックで不安定な動作を引き起こします。
ファームウェアに関するご質問
Question: 1回でもCY_U3P_DMA_ERRORが検出されると、DMA転送は停止しますか?エラーを解除して復帰する方法はありませんか?
Answer: エラー検出後は、再度DMA転送要求が発生しても、転送は実行されません。エラーを解除してDMA転送を再開することは可能ですが、まず原因であるエラーが起きる状態を回避することを推奨します。
Question: AN75779用のアイソクロナス (ISOC) 転送サンプルプログラムはありますか?
Answer: AN75779用のISOC転送サンプルはありません。AN75779のアイソクロナスUVCファームウェアを作成したい場合は、EZ-USB FX3 SDKにあるUSBVideoClassの例を参照してください。
Path: \Cypress\EZ-USB FX3 SDK\1.3\firmware\uvc_examples\cyfxuvcinmem
Question: GPIF IIのステートはどのように確認しますか?参考になる例はありますか?
Answer: 以下にGPIF IIステートを確認するためのプログラム例を示します。
uint8_t curState_p; CyU3PGpifGetSMState(&curState_p); CyU3PDebugPrint (4, "Current status = %d\r\n", curState_p); |
GPIF IIステートの値はcyfxgpif2config.hで確認できますので、CyU3PGpifGetSMStateの返り値と比較してください。この返り値はデバッグ目的でのみご利用ください。APIの詳細については、\Cypress\EZ-USB FX3 SDK\1.3\doc\firmwareにあるFX3APIGuide.pdfを参照してください。
Question: AN75779のサンプルプロジェクト上でBACKFLOW_DETECTを有効にしました。CyU3PGpifDisable()がFX3ファームウェアで呼ばれた場合、時々FX3からの応答が停止してしまいます。何故これが発生しますか?
Answer: アプリケーションでPIB/GPIFエラー割り込みが呼び出されていることにより、発生する可能性があります。BACKFLOW_DETECTを有効にする場合は、CyU3PGpifDisable()実行中にPIB/GPIFエラー割り込みをマスクする必要があります。
AN75779のサンプルプロジェクトでは、全ての割り込みを無効にしてもアプリケーションに影響はないためCyU3PVicDisableAllInterrupts()を使用してください。AN75779のサンプルプロジェクトをベースとして別の割り込み処理を実装したプログラムの場合は、PIB/GPIFエラー割り込みをマスクしてください。
以下にCyU3PVicDisableAllInterrupts()を使うためのサンプルコードとPIB/GPIFエラー割り込みをマスクするサンプルコードを示します。CyU3PVicDisableAllInterrupts()を使う場合、cyu3vic.hをファームウェアで宣言してください。PIB/GPIFエラー割り込みをマスクする場合、pib_regs.hをファームウェアで宣言してください。
uint32_t intstate = CyU3PVicDisableAllInterrupts(); CyU3PGpifDisable (CyFalse); CyU3PVicEnableInterrupts (intstate); |
PIB->intr_mask &= ~(CY_U3P_PIB_INTR_PIB_ERR | CY_U3P_PIB_INTR_GPIF_ERR); CyU3PGpifDisable (CyFalse); PIB->intr_mask |= (CY_U3P_PIB_INTR_PIB_ERR | CY_U3P_PIB_INTR_GPIF_ERR); |
Question: Control Center上のD8hコマンドでSPI Flash (S25FS128S)がEraseできません。どうしたらいいですか?
Answer: EZ-USB FX3 SDKのcyfxusbspidmamode exampleがD8h eraseコマンドをサポートしています。(EZ-USB FX3 SDKは、\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxusbspidmamodeを参照してください)
このファームウェアは、SPI Flashデバイスに対してUSBインタフェースよりErase/Read/Writeが可能です。このファームウェアが書き込まれたFX3はCustom deviceとしてエニュメレートされ、cyUsb3.sysドライバと通信します。またこのファームウェアはSPI FlashデバイスへアクセスするためのVendor コマンド提供します。
上記プロジェクトを試して、問題が解決されるか試してみてください。
Question: GPIF-IIを使わない場合、GPIO[0]-[7]をGPIOとして使用することは可能ですか?
Answer: 可能です。CyU3PDeviceGpioOverride() APIでピンをオーバーライドし、CyU3PGpioSetSimpleConfig() APIまたはCyU3PGpioSetComplexConfig() APIでピンのコンフィギュレーションを設定してください。サンプルファームウェアのcyfxgpioappファイルを参考にしてください。cyfxgpioappファイルは、\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxgpioapp にあります。
Question: FX3でマルチスレッドを作成するのにはどのプロジェクトを参照すべきですか?
Answer: FX3 Code Examplesが参照できます。例えば、cyfxgpiocomplexappは3つのスレッドが使われます。
Question: cyfxUsbUart exampleを使い、ハードウェアフロー制御無しで長時間データを転送したところ、転送データが失われることがあります。どうしたら欠落なく転送データを送れますか?
Answer: データを欠落させることなくUART転送をしたい場合、ハードウェアフロー制御を使わなければなりません。
Question: cyfxUsbUart exampleを使い、高い転送レートで大量のデータを転送する際、Register modeとDMA modeのどちらを使うべきですか?
Answer: 高い転送レートを実現するためにDMA modeを使うべきです。DMA modeは大量のデータを転送するのに使われます。Register Modeで転送する場合、以下のステップが必要になります。
- ファームウェアが各バイトデータを読む
- ファームウェアがバイトデータごとにコールバック関数を呼ぶ
- ファームウェアがデータバッファにデータを格納するためにCyU3PUartReceiveBytes()を呼ぶ
もしハードウェアフロー制御がない場合、UARTトランスミッターはファームウェアでの遅延を考慮せず、定義された転送レートでデータを送り続けるため、バッファオーバーフローを引き起こします。
Question: Dキャッシュはどのように使いますか?
Answer: Dキャッシュの初期化と有効化のために CyU3PDeviceCacheControl(CyTrue, CyTrue, CyTrue) を宣言できます。
注意事項: Dキャッシュが有効になると、システム内のDMAに使用されるすべてのバッファは、キャッシュラインを揃える必要があります。つまり、すべてのDMAバッファは32バイトまたは32バイトの倍数とならなければいけません。これはCyU3PDmaBufferAlloc()によって保証されています。この関数以外で割り当てられたバッファは、32バイトまたは32バイト倍数のアライメントルールに従わなければなりません。このルールは、CyU3PUsbSendEP0Data(), CyU3PUsbGetEP0Data(), CyU3PUsbHostSendSetupRqt()などに提供されるデータポインタと、CyU3PUsbSetDesc() を使って割り当てられたUSBディスクリプタバッファとを含む、ライブラリAPIに渡されたすべてのDMAバッファポインタにも適用されます。
以下に32バイトでUSBディスクリプタバッファをアライメントする例を示します。
const uint8_t CyFxUSB30DeviceDscr[] __attribute__ ((aligned (32))) |
GPIF-IIに関するご質問
Question: FX3で10 bit/pixelのデータを扱う際に、GPIF IIのデータバス幅はいくつに設定すべきですか?
Answer: GPIF IIでは、8 bit, 16 bit, 24 bit, 32 bit幅をサポートしています。この場合は16 bit幅を設定してください。
FX3ではクロックサイクルごとに16 bitを受信するため、ホストアプリケーションで余分となる6 bit/pixelを適切に処理してください。
Question: FX3はイメージセンサーから出力されたYUV422のデータを32-bit GPIF IIバスにパッキングできますか?
Answer: いいえ、FX3はイメージセンサーから出力されたYUV422のデータをパッキングできません。パッキングできるかどうかは使用されるイメージセンサーの仕様に依存します。ご使用されるセンサーがYUV422を32bitにパッキングできる場合は、FX3は最大約3.2 Gbpsの通信速度を実現できます。
Question: YUV422のデータを送る時、DQ [31:0]のビット割当てはどのようになりますか?
Answer: YUV422 8ビットデータは、YUY2またはUYVYの順番で転送されます。そのため、もしセンサーがYUV422のデータを32ビットにパッキングできる場合は、割当ては以下のようになります。
YUY2:
Y1 | U1 | Y2 | V1 | ||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
DQ [0: 7] → Y1, DQ [8: 15] → U1, DQ [16: 23] → Y2, DQ [24: 31] → V1
UYVU:
U1 | Y1 | V1 | Y2 | ||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
DQ [0: 7] → U1, DQ [8: 15] → Y1, DQ [16: 23] → V1, DQ [24: 31] → Y2
AN75779 exampleのディスクリプタにおいて、標準ではVS フォーマットディスクリプタ上でYUY2が設定されています。
さらに情報が必要な場合は、"MIPI Alliance Specification for Camera Serial Interface 2"を参照してください。
Question: Slave FIFO exampleでGPIFを24ビット構成できますか?
Answer: はい。Slave FIFO exampleでGPIFを24ビットで構成できます。構成の手順を以下に示します:
1. AN65974で提供されたGPIFプロジェクトを開きます。
2. Interface settingsのData bus widthで24-bitを選択します。
3. 保存し、Build > Build Project をクリックして cyfxgpif2config.hファイルを生成します。
4. cyfxslfifosync.h ファイルで CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECTを’0’に設定します。
5. プロジェクトをビルドします。これが24ビット Slavefifoアプリケーションのイメージファイルを生成する手順です。
注意事項: アドレス線がGPIO 28 (A1)とGPIO 29 (A0)にマッピングされる Data bus width 16-bitと32-bitの場合と異なり、Data bus widthを24-bitに変更したとき、アドレス線はGPIO 41 (A1)とGPIO 42 (A0)にマッピングされます。アドレス線のピンマッピングは制御線の数、Data bus width、および選択されたアドレス線の数により異なります。外部プロセッサは選択されたData bus width、アドレス線の数、制御線の数に従いGPIFインタフェースにマッピングされているアドレス線を駆動します。
ホストアプリケーションに関するご質問
Question: XferData()はスレッドセーフなAPIですか?
Answer: 別々のスレッドが、FX3デバイスのそれぞれ異なるエンドポイントにアクセスする場合は、スレッドセーフです。別々のスレッドが同じエンドポイントにアクセスする場合は、スレッドセーフは適用されません。CyUSBライブラリは、複数のプロセスやスレッドが同じエンドポイントにアクセスすることを制限していません。このため、お客様が作成されるプログラムにおいて、注意を払う必要があります。
Question: Control Centerはファームウェアが書かれた日時情報を格納できますか?
Answer: いいえ。Control CenterでファームウェアをI2C EEPROMに書き込む際、日時情報は格納されません。Control Centerはimageファイル(日時の情報は入っていません)をI2C EEPROMに書き込むだけです。
Question: Control Centerにはベリファイ機能がありますか?
Answer: はい。ファームウェアがI2C EEPROMに書かれた後に、Control Centerはベリファイを行っています。詳しい情報については、EZ-USB FX3 Software Development Kitウェブページ上にアップロードされているControl Centerのソースコードを参照してください。
その他のご質問
Question: CYUSB3014のIBISモデルはどこにありますか?
Answer: 下記を利用してください。
http://japan.cypress.com/documentation/models/cyusb3014-fx3-ibis-model
CYUSB3014のIBISモデルは上記のみです。
Question: AN75779では、評価ボードの例としてCYUSB3KIT-001を挙げていますが、CYUSB3KIT-003は使用できますか?
Answer: はい、使用できます。新しく、かつ価格の安いCYUSB3KIT-003を是非ご利用ください。
Question: Cypressが作成したWindows Device Driver source fileを提供していただくことは可能ですか?
Answer: ドライバファイルは、FX3 SDKウェブページの「CYUSB3_Suite_Source」の一部ファイルとして提供されています。
http://japan.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
Question: どのファームウェアをコンプライアンステストで利用すべきですか?
Answer: 「cyfxbulksrcsink」ファームウェアを各コンプライアンステストでご利用ください。
Question: サポートしている全てのMedia typesのGlobal identifiersとそれに対応するGUID値はどこで手に入れられますか?
Answer: 標準 Universal Video Class (UVC) ドライバは、多くのMedia typesをサポートするMicrosoftから供給されます。各Media typeはGlobal Unique Identifier (GUID)というユニークな16バイト識別子が与えられています。
例として、YUY2 media typeのGUIDは {32595559-0000-0010-8000-00AA00389B71} と定義されています。YUY2 GUIDデータ構造のレイアウトは以下のとおりです。
Offset | Field | Size (Byte) | Example |
0 | Data1 | 4 | 32595559 |
4 | Data2 | 2 | 0000 |
6 | Data3 | 2 | 0010 |
8 | Data4a | 1 | 80 |
9 | Data4b | 1 | 00 |
10 | Data4c | 1 | 00 |
11 | Data4d | 1 | AA |
12 | Data4e | 1 | 00 |
13 | Data4f | 1 | 38 |
14 | Data4g | 1 | 9B |
15 | Data4h | 1 | 71 |
従って、このGUIDのリトルエンディアンストリーム表現は{0x59,0x55,0x59,0x32,0x00,0x00,0x10,0x00, 0x80,0x00,0x00,0xAA, 0x00,0x38,0x9B,0x71} です。
サポートされる全てのMedia typesのGUID値はこちらを参照してください。
関連資料
データシート:
EZ-USB® FX3: SuperSpeed USB Controller
アプリケーションノート:
- AN76405 - EZ-USB® FX3™/FX3S™ Boot Options
- AN75779 - How to Implement an Image Sensor Interface Using EZ-USB® FX3™ in a USB Video Class (UVC) F...
ガイド:
多くのエンジニアに利用されているKnowledge Base Articles:
- Troubleshooting SPI / I2C Programming in FX3 – KBA94604
- Trouble Shooting Guide for the FX3/FX3S/CX3 Enumeration - KBA222372
- Drivers for EZ-USB® FX1™ , FX2LP™ , and FX3™ - KBA94413
- License for FX3 SDK - KBA222519
- FX3 Compliance Tests - KBA209969
- Low Power Modes in FX3, FX3S, CX3, SD3, FX2G2, and SD2 – KBA225742