3 Replies Latest reply on Sep 8, 2019 11:53 PM by YashwantK_46

    KBA218460: host current and mux setting

    user_4124326

      Hi

       

      While implementing a USB Type-C solution with a FX3 we found KBA218460 Designing FX3™/CX3-Based USB Type-C Products - KBA218460  and have two questions about it:

       

      1. It is written in KBA218460: "by default, the Host provides 5 V, 3 A over Type-C". However, in the USB Type-C Spec R2.0, section 4.6.2.1 it is specified that the USB Type-C source advertises either the default current, 1.5A or 3.0A. So the host doesn't always provide 5V 3A, how is this managed in both the FX3 Type-C Plug Design and the FX3 Type-C Receptacle Design?

       

      2. The FX3 Type-C Receptacle Design uses the PI3USB302-A mux to select the correct pair of USB data lines based on the orientation of the cable. The mux select signal is set by the FX3. USB Type-C Spec section 4.5.1.1 describes how the CC1 and CC2 pin at the receptacle can be used to determine the cable orientation and set the mux accordingly. How is this done in the FX3 firmware, I can't see a connection between the CC pins and the FX3?

       

      Thanks

      Gian

        • 1. Re: KBA218460: host current and mux setting
          YashwantK_46

          Hi Gian,

           

          The answers to the queries are:

           

          1.) There is no current selection mechanism in the plug an receptacle design based on the schematics in the KBA, it is made to work at 5V and not more than 3A by default. Even if the source advertises the current limits, because of the pull-down on the CC lines, the FX3 Type-C design is supposed to work at the default 5V 3A.

             

          2.) Please refer to the following thread: Type C connector enumeration issue .

          The FX3 firmware does the following steps to control the switching of the MUXSEL signal:

               A) Disable the USB2 support.

               B) Try to establish USB3 connection using the first USB3 pair.

               C) check for CY_U3P_USB_EVENT_SS_COMP_ENTRY and CY_U3P_USB_EVENT_USB3_LNKFAIL.

                    If any of the two event gets triggered, do the following:

                         (a)disable the USB PHY by using CyU3PConnectState(CyFalse, CyFalse);

                         (b)toggle the mux selection GPIO.

                         (c)enable the USB 2.0 support

                         (d)Call connectstate API to establish a USB 3.0 connection using the second pair.

               The above thread shows the implementation of mux control in the firmware.

           

          Regards,

          Yashwant

          • 2. Re: KBA218460: host current and mux setting
            user_4124326

            Hi Yashwant,

             

            1.) Of course it will work at the 5V 3A. My issue here is that the default current on USB Type-C is not 3A. The default is either 500mA or 900mA. It might also offer 1.5A or 3A, so the KBA should be made to work at 5V and 500mA. It might get more power but that's not guaranteed. The way it currently says "by default, the Host provides 5 V, 3 A" leads to users thinking they can always draw 3A which they can't.

             

            2.) Ok thanks for the explanation.

             

            Regards,

            Gian

            • 3. Re: KBA218460: host current and mux setting
              YashwantK_46

              Hi Gian,

               

              1.) We have no mechanism to understand the host's current limits in our hardware or software and has to be implemented externally using a PD controller since it can understand the CC terminations.

               

              NOTE: Please don't follow the schematics of the PD controller design from the KBA as it is not correct.


              Regards,

              Yashwant