Skip to main content
Graduate II
October 31, 2022
Solved

STM32F7 - USB High Speed User experience?

  • October 31, 2022
  • 1 reply
  • 2506 views

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.

    This topic has been closed for replies.
    Best answer by Pavel A.

    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.

    1 reply

    Super User
    October 31, 2022

    > 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.

    LCEAuthor
    Graduate II
    October 31, 2022

    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.Answer
    Super User
    November 1, 2022

    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.