2 Replies Latest reply on Apr 19, 2020 6:43 PM by JuyoungJ_06
      • 1. Re: Community Translation - Designing FX3™/CX3-Based USB Type-C Products - KBA218460
        keni_4440091

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

        タイトル: USB Type-C製品に基づいたFX3TM/CX-3の設計 - KBA218460

         

        質問:

        USB Type-Cと接続するFX3/CX3ベース製品の設計

         

        回答:

        USB Type-Cコネクタの特徴は、リバーシブルであり、最大100 Wの電力を供給できることです。つまり、USB Type-Cケーブルは任意の方向(逆さ)で接続でき、VBUS電圧は最大20 V5A。逆接続を実現するために、USB Type-Cレセプタクルには、すべてのUSBデータライン(SuperSpeedおよびHi-Speed)の1対のペアが追加されています。正しいペアのUSBデータラインは、USB Type-Cコネクタが挿入されている方向に基づいてマルチプレクサを使用して選択する必要があります。以下のセクションでは、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プラグデザインは、5 VVBUS電圧と3 A以下の電流を必要とする標準デバイス(RAIDドングル、フラッシュドライブなど)に適しています。このような設計では、USB-PDPower Delivery)コントローラーは必要ありません。 Type-CプラグおよびFX3を使用するアプリケーションの場合、USBホストが適切な接続を処理できるため、正しいペアのUSBデータラインを選択するためにマルチプレクサは必要ありません。 FX3ベースのUSB Type-Cプラグデザインの回路図例を図1に示します。デバイスがAであることを示すには、プラグの構成チャネル(CC)ラインに5.1 Kのプルダウン抵抗(Rd)が必要です。パワーコンシューマ(パワーシンク)であり、5 V3 A以下のVBUSが必要です。USBType-Cプラグベースのデザインを使用する場合、デフォルトでホストが機能するため、追加のPower Delivery ControllerFX3での追加のファームウェア実装は不要です。 Type-C5 V3 Aを提供します。アプリケーションで他の電圧/電流が必要な場合は、PDコントローラーが必要です。詳細については、セクション3を参照してください。

         

         

                                                                  

                                                                     図1. FX3 プラグ設計図

        1. FX3 Type-レセプタクル設計

        カメラモジュール、ドック、モニターなどのデバイスは、Type-Cレセプタクルで設計されています。 Type-Cケーブルを介してUSB Type-Cホストに接続されます。 USB Type-Cレセプタクルを使用するアプリケーションの場合、Type-Cコネクタの向きに応じてUSBホストと通信するUSBSuperSpeedデータラインの正しいペアを選択するためにマルチプレクサが必要です。向きに基づいて正しいUSBデータラインのペアを選択するには、論理的な判断を施し、マルチプレクサを操作するための入力として与える必要があります。USB Type-C仕様は、デフォルトでUSB Power Deliveryなしで、VBUSを介して最大5 V3 Aの電力の伝送をサポートします。 5 V3 Aを超える電流を必要としないアプリケーションの場合、USB Power Deliveryコントローラチップは必要ありません。このような場合、FX3だけを使用してマルチプレクサのSELラインを制御し、USB 3.1 SuperSpeedラインの正しいペアを選択できます。 FX3は、堅牢なSDKによってサポートされる強力なARM®コアを介して実装を可能にします。 USB Type-Cレセプタクルとマルチプレクサを使用したUSB接続のサンプル回路図を図2に示します。マルチプレクサを制御するFX3ファームウェアの実装については、以下のコメントを参照してください。

                                                                                                                       

         

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

         

                 

         

         

         

         

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

         

         

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

        5 V3 A以外の異なる電圧/電流を必要とするアプリケーションでは、Type-C PDホストと電力値を取り扱うためにUSB Power DeliveryPD)コントローラーが必要です。 PDコントローラチップはマルチプレクサを制御し、USB SuperSpeedデータラインの正しいペアを選択します。 PDコントローラーがUSB Type-CおよびPD関連の要求を処理するため、FX3側でファームウェアを実装する必要はありません。サイプレスのEZ-PD™CCG2コントローラとFX3およびCCG2ファームウェアを使用したリファレンス回路図については、Cypress Technical Supportにお問い合わせください。

         

        1. PDコントローラなしのFX3 Type-Cレセプタクル設計、FX3ファームウェアにマルチプレクス制御を実装する場合は下記のステップに従ってください。

         

        1. USB2サポートをディセーブル
        2. 最初のUSB3ペアを使用してUSB3接続の確立を試みます。
        3. CY_U3P_USB_EVENT_SS_COMP_ENTRYおよびCY_U3P_USB_EVENT_USB3_LNKFAILを確認します。

                              2つのイベントのいずれかがトリガーされた場合、以下を実行します。

        1. CyU3PConnectStateCyFalseCyFalse)を使用してUSB PHYを無効にします
        2. マルチプレクサの選択GPIOを切り替えます
        3. USB 2.0サポートを有効にします
        4. 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");

          }

         

        • 2. Re: Community Translation - Designing FX3™/CX3-Based USB Type-C Products - KBA218460
          JuyoungJ_06

          Hello, Nino-san

           

          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.

           

          Due to the current volume of works, Please bear with me for the delayed the response,

          Thanks for your contribution to CDC!

          Will keep you update the status.

           

           

          Thanks,

          Jenna Jo