element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Blog Solve USB 3.0 issues with this one weird trick
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: drozwood90
  • Date Created: 31 Mar 2020 2:05 AM Date Created
  • Views 4625 views
  • Likes 7 likes
  • Comments 13 comments
  • usb3
  • usb-c
  • ultrascale+
  • usb
  • zynq mpsoc
  • mpsoc
Related
Recommended

Solve USB 3.0 issues with this one weird trick

drozwood90
drozwood90
31 Mar 2020

Hi all,

 

I've seen quite a few recent posts with people seeing USB 2.0 speeds / connectivity when using the MPSoC.  I wanted to let you know that after scouring the interwebz, I think I've pooled enough information together to try to help you with your issues.

If you are already familiar with USB 3.0 and transceivers, you can skip to the end!  Or stick around, you might learn a thing or two!

 

As USB speeds have risen from the lowly 1.5Mbps to the great 5 Gbps that we see in today's SuperSpeed connectivity, we have to start to appreciate one thing that veteran FPGA developers had had to work with for years!

Transceivers!

image

UG576

 

Why transceivers?  Well, as speeds get higher and higher, you have to "get" that data from one point to another.  To do that, it makes sense to go wider and slower.  The problem is as time of flight gets smaller and smaller, your margin for getting all of the data lines to line up at the same time as the proper location of your clock or sampling trigger gets harder and harder.

 

image

(unrelated, but the image demonstrates lining up data with a sampler signal (clock in this case) - Xilinx Forums post)

 

People working with high data rates have long since known this and you see a LOT of data and signaling schemes to try to combat these issues.  One thing is clear, using an ANALOG signal to read our digitally encoded data in as FEW lanes as possible is the way to go with currently technology.

Alright, so what does all this have to do with USB 3.0 and the MPSoC?

 

Well, in high speed applications we start to have to worry about signaling MARGIN.  You can think of this as the "fuzzy" levels in our signal that can be interpreted as our data.  The more margin, the more room for error there is.  These can be seen as "eye diagrams".  As data is overlayed to a graph, you get a sense of just how much margin you have.  Larger centers of eye-diagrams are better, but too much is also bad.  There is a balance and every situation can be different.

image

This image taken from Tech Tips 104 - XILINX and IBERT  Video 4 Getting More Margin 2.  This is a series of training videos I produced a while ago.They teach you how best to tweak and tune transceivers on a Zynq-7000 based PicoZed.  The steps can be applied to just about any transceiver tuning.

Transceiver Tech Tips - Tuning Your Transceiver

 

Ok, Still, you have NOT mentioned the MPSoC!  Not even USB 3.0 related to it!

 

Right - so with that background knowledge, how does the MPSoC connect to USB?  For the Processing System (PS), it has two internal pieces of hardened IP.  One is the ULIPI USB 1.1-2.0 driver / transceiver, the other is the GTR based USB 3.0 IP.  GTR?  Didn't you mention GTH above?  I sure did!  The Xilinx Zynq-UltraScale+ MPSoC supports both GTH and GTR transceivers.  GTR is a special transceiver that has been used for supporting the Matrix of features the MPSoC's PS provides.  This includes Ethernet, PCIe, Display Port, and SATA.

image

 

Knowing that the USB 3.0 is a transceiver, that gives us a LOT of information about how this works.   Especially knowing that something is USB 3.0 is only half the story.  You then have to consider the TYPE of connector.  USB A, B, C, Standard, Micro, Mini.

https://en.wikipedia.org/wiki/USB

On most Xilinx reference boards which support USB 3.0, including the Avnet family, it was decided to continue using the USB A or B format connectors.

Type-AType-A SuperSpeedimageimageimage

Type-A, Type-A SuperSpeed, Micro-B, Micro-B SuperSpeed, USB-C

(Images from above linked Wikipedia Link)

 

A cool thing to note and one of the reasons Micro-B SuperSpeed was chosen, the USB standard actually forces backwards compatibility!  As you can see, a USB Type A is Type A, but a SuperSpeed has added pins to allow the transceivers to link.  Same with Micro-B.

This means that for people that do not want to use USB 3.0, it provides an easy way to connect existing devices - without being FORCED to use a (at the time) expensive USB C type connector.

 

So where does all of this information leave us?  Eye-Diagrams, connector types, GTR transceviers...

Essentially, what I believe has been happening, people are running out of margin.  Without proper high quality cables, the eye is closing and we are seeing a loss of link, which then most (all?) USB 3.0 devices tend to drop back to USB 2.0.

I can say with personal experience that running a USB 3.0 webcam on an Ultra96V2, using it's USB-A SuperSpeed connector is possible and does work well.  I can also say that using a USB 3.0 webcam on an UltraZed-EV is also possible.  You just have to watch your signaling.  I have not had success using "cables" from EBay nor "sort by $ vs $$$" on other online stores.  I HAVE had success with a webcam that had a Micro-A SuperSpeed cable as well as using a HIGH Quality adapter such as the one from WhizzSystems.

If you search around the E14 forums, Xilinx support forums, or other places, you will likely see a few recommendations and I can say that I have actually used the WhizzSystems adapter.

 

[[You can now purchase the WhizzSystems adapter from the Avnet.com site, or your local sales office]]

AES-ACC-WHIZZ-USB3 (Link to Product Page)

USB 3 devices only detected with USB 2 speed  (post answered by my colleague)

 

You can also see people saying a Firefold adapter and a few others work well for them.

You can find links to those products in Kevin's post [note above link for easy access to purchase the WhizzSystems adapter].  We are currently working with a few suppliers to try to make these adapters more accessible.  Feedback I've received is that it is difficult to get these adapters.

 

If you have a specific need, please make sure to reach out to your support teams and we'll do our best to get you setup with the right hardware!

 

--Dan

 

**corrected spelling - supper is not support!
** added link to product - as of this posting, the product is active, but there is some missing data that I am working to fill in!

  • Sign in to reply

Top Comments

  • cstanton
    cstanton over 5 years ago +2
    Thanks Dan!
  • Fred27
    Fred27 over 5 years ago +1
    Very informative. Has anyone ever seen a Micro-B SuperSpeed connector in the real world? If I ever saw one I'd assume it was an unofficial franken-connector hack.
  • cstanton
    cstanton over 5 years ago in reply to Fred27 +1
    They have been commonly used on USB3 portable external hard disk drives where the drive is 3.5"
  • oleb0n
    oleb0n over 4 years ago

    I can only add more confusion by adding that Ethernet (which is supposed to depend on GTR clock too) is also working fine. There is no chance that some good Samaritan secretly routed clocks in this design, I built it from scratch myself. Maybe there are some secret hidden scripts in u-boot or in Ubuntu rootfs,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • drozwood90
    drozwood90 over 4 years ago

    Thanks for that, I would think you do need the clock as well.  Is it possible someone wired one internally somehow?  I know there is a path to do that - although not advisable due to the additional jitter.

     

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • oleb0n
    oleb0n over 4 years ago in reply to drozwood90

    Yes, the  "brain" is Ultrazed-EG SOM

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • drozwood90
    drozwood90 over 4 years ago in reply to oleb0n

    Hi oleb0n,

     

    Is the "brain" the UltraZed SOM?  If so, which one?  Sorry, this is helping me paint a picture of what you have going on and between the two UltraZeds and the Ultra96 there are (maybe) different things I would respond with.

     

    --Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • oleb0n
    oleb0n over 4 years ago in reply to drozwood90

    Of course! I have inherited a board that mimics Ultrazed carrier in about 90% circuitry related to Zynq. One of a few differences is the missing GTR clocks. The USB part is complete copy/paste of Avnet's carrier except for the GTR clock. I configured and run Ubuntu 18.04 on Ultrazed, the image processing guy plugged in Flir USB3.0 camera and everything looked OK until yesterday when I started troubleshooting I2C. I just noticed missing GTR clock (because it is supposed to be connected to  I2C:) ). The I2C issue is solved, but now I am confused with the USB port which somehow managed to work without the GTR clock. So far the best solution for me seems to be installing a 52MHz oscillator without any synthesis for other GTR clock ports (we do not need neither Display port, nor SATA).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube