3 Replies Latest reply on May 10, 2017 1:31 PM by Intel Corporation

    Edison Custom Board USB OTG FT201X Device

    HSD_Bert

      Hi,

       

      Since I read of a couple of issues some others had to use Intel Edison as USB host,

       

      I would like to ask you to have a short look to our custom schematic, which allows us to use FT201X I2C slave USB bridge by Edison. Unfortunately custom board solutions are not part of Intel Support Team responsibility, but I hope at least the community would share their knowledge.

      Please find attached the part of the schematic which we will use to connect FT201X to Intel Edison. This schematic is reduced to USB OTG/host functionality, all other components are removed from schematic, to allow to focus on the USB OTG host/device switching functionality.

       

      Idea:

      USB Host port (CON1) is usable to download firmware to Edison as long as ED_2G_EN_NMEA_USB_DEV is low. When ED_2G_EN_NMEA_USB_DEV is set to high, IC4 TS3USB221 switches to USB channel 1, USB_ID is grounded, and VBUS is floating as long as no host is connected to CON1. So Edison should switch to USB host mode and start enumeration of FT201X when VDD_5V is active.

      As soon as ED_2G_EN_NMEA_USB_DEV goes low, TS3USB221 switches back to channel 2 (CON1), USB_ID is floating, FT201X switches to suspend mode (low power mode) and Edison switches back to USB device mode. As FT201X is a self powered device PSW signal is unused and FAULT signal is always set to high.

      I would highly appreciate to give me some feedback if this approach will work.

       

      BR

        • 1. Re: Edison Custom Board USB OTG FT201X Device
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hi HSD_Bert,

           

          You are correct when you say that custom board designs are not part of our support scope, however it doesn’t mean that we could not provide suggestions to user’s concerns. We always try to help in any way we can.

           

          So back to the main topic, I was checking your schematic and after analyzing the description you provided, I don’t see any issues with your setup. I have, however, some general comments about the USB interface that you might find useful for this or future projects.

           

          The first comment is about the PSW and FAULT pins. These pins are not part of the USB interface itself but they are used to control an external power supply for the Client device when the Edison works as the Host device. So, if you are not going to use an external power supply for the USB device, then there is no need to use these signals. However you have to connect them to something because leaving them floating might cause issues. The PSW pin for example, should be connected to GND through a pull down resistor. I see in your schematic that you are leaving the PSW pin floating so you may want to add this change in the design. Leaving it floating should not represent any issue because PSW is an output pin, however I always recommend to connect every unused pin to a pull down or pull up resistor, in this case a pull down resistor. Regarding the FAULT pin, if it is not used it should be connected to a pull up resistor to 1.8V. I see that you did this in your schematic so everything is fine here.

           

          The schematic section for the TS3USB221 is actually very similar to the one used in the Arduino Expansion Board schematic (http://www.intel.com/content/www/us/en/support/boards-and-kits/000005829.html) so I don’t see any issues there. The D+ and D- signals can be connected directly to the TS3USB221 outputs but using the resistors that you included is also valid and it should not represent any issue, actually adding those resistors is recommended in some designs.

           

          About the selector used in the TS3USB221 IC, it seems to be find too, but my recommendation is to make sure this part is working fine because this is a critical part for the switching between one and another USB functionality. The same applies for the USB_ID pin because you are setting it to GND or leaving it floating using the Edison's pin 50, so make sure that it is working as it should. As you correctly said, the USB_ID should be grounded when the Edison works as the Host device and floating when it works as the Client device. Another detail in this part is that you have to make sure that the pin 50 is always set whether to HIGH or LOW. If it is unsent, then the selector of the TS3USB221 IC might not work as expected. Consider also that the HIGH value is 1.8V for every Edison’s GPIO. I didn’t check the SI1922EDH datasheet but make sure it can toggle with 1.8V, otherwise it won’t work.

           

          Regarding the VBUS pin, it should be connected to HIGH (5V) only when the Edison works as the Client device, but if it works as the Host device it should be left floating. This pin is only used to let the Edison know when it is connected to a host port. I think you have this setup correct in your schematic. As far as I understand, in your design the VBUS goes HIGH only when you connect the USB cable to the CON1 connector, but if there is no cable connected, then it is left floating. The Arduino Expansion Board uses the FDC6331L IC as a switch for the VBUS pin, but I think that not using it won’t end in any issue with this pin.

           

          So, in general your schematic looks fine to me, but the real test would be to try the setup and see if it actually works as you want. It would be interesting to see the final board when you finish it, so if possible post a couple of pictures when the board is done. That would be very useful for other users that want to design their own boards.

           

          I hope you find this information useful. Anyhow, other users might also want to share their experiences working with custom boards and USB interfaces with Edison. There is another thread that you didn’t mention before that discusses an issue with the USB interface in a custom board. Here it is in case you want to take a look at it: Re: USB Host mode internally

           

          Have a nice day!

           

          Regards,
          Diego V.

          2 of 2 people found this helpful
          • 2. Re: Edison Custom Board USB OTG FT201X Device
            HSD_Bert

            Hi Diego, Thank you very much for your detailed respond, it's very useful indeed :) SI1922EDH just work fine with 1V8 input signal, as it has 1V switch on threshold. For PSW pin I will add the recommended pull-down pin. For undefined voltage level on  pin 50 pull-down on pin 50 was added to make sure, SI1922EDH has defined voltage level in all power-states of Edison. TS3USB221 was selected to MUX USB between Device/Host mode, because Arduino Expansion Board as you mentioned, use it as well. Diego, now I'm confident that this approach is working, thank you for your feedback. I will come back to you, as soon as I will be able to test everything with (hopefully) good news. BR

            • 3. Re: Edison Custom Board USB OTG FT201X Device
              Intel Corporation
              This message was posted on behalf of Intel Corporation

              That's great! I hope you have successful results with your tests.

               

              Sharing your results with the community would be great, and if you can post pictures of the final board that would be even better for other users.

               

              I'm glad I could help.

               

              Regards,
              Diego