Electronics > Projects, Designs, and Technical Stuff

USB 3 SuperSpeed interface ICs

(1/2) > >>

SiliconWizard:
I'm looking for solutions to add a SuperSpeed interface to future projects. A FIFO-like interface IC ideally.

I currently know of two "obvious" offerings:
* FTDI FT60x series: cheaper than the FX3, free and good drivers, straightforward to use.
* Cypress  FX3: more expensive, with an ARM core (but I don't really care about that), more flexible, but not as easy to use, no robust driver available freely AFAIK (big problem on Windows, doesn't matter on Linux: I've read that the Windows drivers that Cypress gives away for evaluation purposes have a lot of limitations and performance issues, and I'm not surprised, it's always been the case with the FX series).

Do you guys know of any other solution? Do you have any experience with one of the two above?

Beyond data throughput (I'm expecting > 100MBytes/s, should not be a big problem), I'm also hoping to get lower latencies than with USB HiSpeed. Is that expectation realistic?

Thanks!

bson:

--- Quote from: SiliconWizard on July 10, 2019, 09:34:35 am ---I'm also hoping to get lower latencies than with USB HiSpeed. Is that expectation realistic?

--- End quote ---
Latency from what?  From when a device has more data, from when a device has a full buffer and needs it drained before it's overrun, from when a device has a condition that needs servicing, from when a host initiates a bulk transfer,  from... ?

Basically, latency might be reduced but it depends on what latency we're discussing, what the main bottleneck (critical path) is in HS, to what degree the device implements fancy USB 3 features like real-time extensions and unpolled operation, and perhaps most importantly the drivers.

If you REALLY need to get it done right (as in it's a key product feature) then I'd first evaluate off-the-shelf solutions like the FTDI one (despite my gut dislike for FTDI), and if those aren't not gonna do it for you roll your own device stack and drivers; this is where the Cypress part is handy.  The latter is easily going to cost you 25x what any off the shelf solution will.  (Or, conversely, take 25x as long and require expertise in multiple domains if it's a hobby project - from USB 3 device implementation to MS WDF - and how to implement high performance drivers.  Because of the disjoint expertise required it's probably not a single person job, if you want it done really well.)  Enumerating options is a good start!

SiliconWizard:
Well, the typical "latency" on a given bus would be the min/average/max time-to-delivery of data packets. Obviously it could depend on several factors including the transfer mode, packet size and host-related questions (OS, drivers, application...), but I have used USB HS extensively and know what to expect, so I'm only interested in what would significantly differ with USB SS. Since SS is more like a point-to-point protocol, the typical latency should be much lower than with HS and its somewhat "shared" nature and its 125µs microframes. But any real-life experience with it would be interesting.

Round-trip times are easier to measure than one-way latencies especially when using non-real time OSs.
I have read some articles claiming round-trip times (which would mean timing the following sequence: request to send a data packet from the host to the device, the device receiving the data and immediately sending a request to send back another data packet to the host, and finally the host receiving it) of around 30µs-50µs with USB SS and the most favorable case (appropriate packet size, etc). Of course on non-realtime OSs, that's only an average. You can get higher latencies on occasion... On RT-patched Linux kernels though, that kind of latency can be sustainable.

I guess I would have to test by myself to really get an idea of what I can obtain...

Anyway, if anyone knows of any other possible solution than the FTDI or Cypress chips, that'd be interesting. Since I'm going to interface that with FPGAs only, in theory I guess I could also consider an USB 3.0 core IP, but I don't know if that even exists so far, and if it does, that probably costs a fortune and takes a large amount of logic resources...

Miyuki:
what about FPGA with fast PCIe compatible serdes and use some PCIe to USB 3.0 SS converter

not sure how it will be about pricing of converter and FPGAs with PCIe lines are on more expensive side

Bassman59:

--- Quote from: SiliconWizard on July 10, 2019, 09:34:35 am ---I'm looking for solutions to add a SuperSpeed interface to future projects. A FIFO-like interface IC ideally.

I currently know of two "obvious" offerings:
* FTDI FT60x series: cheaper than the FX3, free and good drivers, straightforward to use.
* Cypress  FX3: more expensive, with an ARM core (but I don't really care about that), more flexible, but not as easy to use, no robust driver available freely AFAIK (big problem on Windows, doesn't matter on Linux: I've read that the Windows drivers that Cypress gives away for evaluation purposes have a lot of limitations and performance issues, and I'm not surprised, it's always been the case with the FX series).


--- End quote ---

Regarding drivers -- if the device is class-compliant and your Favorite Operating System includes drivers for that class, whether Cypress or FTDI provides a driver doesn't matter.

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod