Community Translation - Designing FX3™/CX3-Based USB Type-C Products - KBA218460

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
JuIn_1625121
Level 5
Level 5
100 sign-ins First solution authored 100 replies posted

タイトル:

FX3™/CX3ベースのUSB Type-C製品の設計 - KBA218460

質問:

FX3/CX3ベースのUSB Type-Cコネクタを使った製品を設計するにはどうすればよいですか?

回答:

USB Type-Cコネクタの特徴は、リバーシブル接続が可能で、最大100Wの電力を供給できることです。 つまり、USB Type-Cケーブルはどのような向き(上下逆)でも接続でき、またVBUS電圧は最大20V、電流は最大5Aまで上げることが可能です。リバーシブル接続を実現するために、USB Type-Cレセプタクルには、すべてのUSBデータライン(SuperSpeedとHi-Speed)のペアが1つ余分に用意されています。USB Type-Cコネクタが挿入されている方向に基づいて、マルチプレクサを使用して正しいUSBデータラインのペアを選択する必要があります。以下のセクションでは、USB Type-C コネクタを使用した 3 種類の FX3/CX3 デザインについて説明します。Type-C コネクタと USB Power Delivery の詳細については、USB Type-C 仕様書USB Power Delivery 仕様書を参照してください。次のセクションは、FX3 および CX3 ファミリのデバイスに適用されます。

1.FX3 Type-Cプラグの設計

このType-Cプラグの設計は、VBUS電圧が5V、電流は3A以下を必要とする標準的なデバイス(RAIDドングル、フラッシュドライブなど)に適しています。このような設計の場合、USB-PD(Power Delivery)コントローラは必要ありません。Type-C Plug と FX3 を使用するアプリケーションでは、USB ホストが適切な接続を処理できるため、正しいペアの USB データラインを選択するためにマルチプレクサは必要ありません。FX3ベースのUSB Type-Cプラグ設計のサンプル回路図を図1に示します。デバイスが電力のコンシューマ側(power sink)で、5V,3A以下のVBUSが必要であることを示すために、プラグのコンフィギュレーション・チャンネル(CC)ラインには5.1KΩのプルダウン抵抗(Rd)が必要です。デフォルトでは、ホストはType-Cで5V, 3Aを提供するため、USB Type-Cプラグベースのデザインを使用する際には、Power DeliveryコントローラやFX3でのファームウェアの追加実装は必要ありません。アプリケーションが他の電圧/電流を必要とする場合は、PDコントローラが必要です。詳細はセクション3を参照してください。

図1. FX3 Type-Cプラグの回路図

1.png

2. FX3 Type-Cレセプタクルの設計

カメラモジュール、ドック、モニターなどのデバイスは、Type-Cレセプタクルで設計されています。これらのデバイスはType-Cケーブルを介してUSB Type-Cホストに接続されます。USB Type-Cレセプタクルを使用するアプリケーションでは、USBホストと通信するUSB SuperSpeedデータラインの正しいペアをType-Cコネクタの向きに応じて選択するために、マルチプレクサが必要です。コネクタの向きに基づいてUSBデータラインの正しいペアを選択するためには、ロジックで向きを決定する仕組みが実装され、それをマルチプレクサに入力して動作させる必要があります。

USB Type-Cの仕様は、USB Power Deliveryを含まないデフォルトでは、VBUSを介して最大5V、3Aの電力伝送をサポートしています。5Vで3A以上の電流を必要としないアプリケーションでは、USB Power Delivery コントローラIC は必要ありません。このような場合には、FX3だけでマルチプレクサのSELラインを制御して、USB 3.1 SuperSpeedラインの正しいペアを選択することができます。FX3は、堅牢なSDKでサポートされている強力なARM®コアにより、このような実装を可能にします。図2にUSB Type-Cレセプタクルとマルチプレクサを使ったUSB接続のサンプル回路図を示します。マルチプレクサを制御するためのFX3ファームウェアの実装については、下のコメントを参照してください。

図2. FX3 Type-Cレセプタクルの回路図

2.png

図2に示すように、USB Type-Cレセプタクルからは、各USBデータ線の2ペアがマルチプレクサに接続されています。マルチプレクサからは、1ペアのUSBデータラインがFX3に接続されています。MUXSEL ラインは FX3 の出力 GPIO を介して制御され、USB SuperSpeed ラインの正しいペアを選択します。USB SuperSpeed ラインの正しいペアを選択するロジックは FX3 ファームウェアに実装されています。

3. PDコントローラ付きFX3 Type-Cレセプタクル設計

5V,3A以外の電圧/電流を必要とするアプリケーションでは、Type-C PDホストとのpower numbersのネゴシエーションにUSB Power Delivery (PD)コントローラが必要となります。PDコントローラICはマルチプレクサを制御し、USB SuperSpeedデータラインの正しいペアを選択します。PDコントローラがUSB Type-CおよびPD関連の要求を処理するため、FX3側ではファームウェアの実装は必要ありません。サイプレスのFX3とEZ-PD CCG2 コントローラを使用した参考回路図やCCG2のファームウェアについては、Cypress技術サポートまでお問い合わせください。

コメント部:

2. FX3 Type-C レセプタクルの設計(PDなし)の場合は、以下の手順でFX3ファームウェアにマルチプレクサ制御を実装してください。

1) USB2のサポートを無効にします。

2) 最初の USB3 ペアを使用して USB3 接続の確立を試してください。

3) CY_U3P_USB_EVENT_SS_COMP_ENTRYとCY_U3P_USB_EVENT_USB3_LNKFAILをチェックします。

     2つのイベントのいずれかが発生した場合は、以下のようにします。

          a) CyU3PConnectState(CyFalse, CyFalse)を使用してUSB PHYを無効にします。

          b) マルチプレクサ選択用GPIOをトグルします。

          c) USB 2.0 サポートを有効にします。

          d) connectstate API を呼び出して、2番目のペアを使用してUSB 3.0接続を確立します。

下記はコードスニペットの例です。

status = CyU3PUsbControlUsb2Support(CyFalse);

  if (status != CY_U3P_SUCCESS)

  {

    CyU3PDebugPrint(4,"\r\nDisabling USB2 failed. Stopping Execution");

    while(1);

  }

  CyU3PThreadSleep(20);

  status = CyU3PConnectState(CyTrue, CyTrue);

  CyU3PThreadSleep(50);

  for(int i =0 ; (i<100 && !U3_EVENT); i++ )

  CyU3PThreadSleep(5);

  if(!U3_TRUE)

  {

  CyU3PDebugPrint(5,"\r\nNot Super speed enumeration with MUX_SEL low. Flipping Mux to try again");

  CyU3PConnectState(CyFalse, CyFalse);

  CyU3PGpioSetValue(SS_MUX_SEL_GPIO22,CyTrue);

  CyU3PUsbControlUsb2Support(CyTrue);

  CyU3PThreadSleep(20);

  status = CyU3PConnectState(CyTrue, CyTrue);

  CyU3PThreadSleep(50);

  if (status != CY_U3P_SUCCESS)

  {

        CyU3PDebugPrint (4, "\n\rAppInit:ConnectState Err = 0x%x", status);

        CyCx3UvcAppErrorHandler(status);

  }

  }

  else

  {

  CyU3PDebugPrint(5,"\r\nSuper speed enumeration with MUX_SEL low");

  }

1 Reply
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello

We receive your translation, it will be published to KBA to Community.

I will get back to you after internal review, after that you will receive the point.

Please bear with me for the delayed the response,

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo
0 Likes