cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F7 - USB High Speed User experience?

LCE
Principal

Hello,

I have just "finished" the ethernet interface for a STM32F7, now we think about also using the USB high speed interface (yes, it needs an external high speed USB PHY), that would be for data streaming, as an alternative for using ethernet, as many laptops these days don't have a direct ethernet connection, even less so with PoE.

We need an ultra-reliable connection, running for hours / days / weeks, probably as a "mass storage" device (which uses USB bulk transfers, we prefer this compared to isochronous audio class for several reasons).

Data rate will be about 50 Mbit/s max.

Can anybody please report about their experience with similar use cases with the F7?

Thanks!

Edit:

I almost forgot - how's the (windows) driver side handled by ST / with ST devices?

In an old product we use a Cypress FX2 chip plus its win driver.

1 ACCEPTED SOLUTION

Accepted Solutions
Pavel A.
Evangelist III

Ah, thanks for clarification.

> Can the STM32's USB that reliable?

STM32 is just a microcontroller chip. A complete USB solution needs additional parts and connections. These do matter.

From purely software POV - not with the ST "middleware". For a robust product, look for a better USB software.

The host side software matters as well (can it handle errors and recover properly?)

> So ST does not have their own specialized drivers?

ST has a driver for CDC (serial port) but its use is deprecated in favor of Windows in-box driver.

ST has also DFU driver, shipped with CubeProgrammer. It is a thin shim around the winusb driver, similar to what the ST-LINK interface uses.

That's all.

View solution in original post

4 REPLIES 4
Pavel A.
Evangelist III

> We need an ultra-reliable connection, running for hours / days / weeks

AFAIK, USB does not have such property. (at least before latest USB-C integrated with thunderbolt)

> how's the (windows) driver side handled by ST / with ST devices?

Windows (v 10,11 and matching servers) has in-box support for all current USB standards, hubs and some device classes - mass storage included. Also, it has defined proprietary descriptors (google for "OS descriptor") which allows to create a custom device and use it via the "winusb" in-box driver. No custom drivers are needed for such devices. (without this descriptor it still is possible to use the winusb driver, though with extra hoops).

The Winusb API supports bulk pipes. There is also a version of libusb API for Windows that works via winusb.

Thanks for your reply!

>> We need an ultra-reliable connection, running for hours / days / weeks

>AFAIK, USB does not have such property. (at least before latest USB-C integrated with thunderbolt)

Well, we have several products 100% reliable for years now (based on Cypress FX2).

To be clearer:

Can the STM32's USB that reliable?

>> how's the (windows) driver side handled by ST / with ST devices?

> Windows (v 10,11 and matching servers) has in-box support for all current USB standards, ...

Again, unclear question from my part... I know that windows has all these USB type drivers.

So ST does not have their own specialized drivers?

Pavel A.
Evangelist III

Ah, thanks for clarification.

> Can the STM32's USB that reliable?

STM32 is just a microcontroller chip. A complete USB solution needs additional parts and connections. These do matter.

From purely software POV - not with the ST "middleware". For a robust product, look for a better USB software.

The host side software matters as well (can it handle errors and recover properly?)

> So ST does not have their own specialized drivers?

ST has a driver for CDC (serial port) but its use is deprecated in favor of Windows in-box driver.

ST has also DFU driver, shipped with CubeProgrammer. It is a thin shim around the winusb driver, similar to what the ST-LINK interface uses.

That's all.

Thanks again!

So - as ususal - it basically depends on what we're doing with it, can't really rely on the ST side concerning firmware.

No problem with that, I'm used now to start with HAL / Cube stuff, then "dissecting" the HAL functions step by step and directly into the registers.

But basically everything seems possible with the STM32's USB.

The hardware / PCB layout side shouldn't be a problem, been there, done that, for years, also with high speed USB.

The driver side will be more interesting, I have to inform and talk to our windows programmers.