cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 USB Device generic questions

Mehran Memarnejad
Associate III

Hello,

I have some general questions about USB subsystem in STM32F723:

Q1- What is the maximum throughput in STM32F723 when working in USB HS with DMA enabled in device mode? with and without USB stack overhead?

Q2- Is there any difference in throughput when I design a usb device with TWO endpoints or Multiplex them on ONE endpoint?

Q3- What is the best way to design a USB Composite Device? I mean the best way to define interfaces and endpoints? Any Document or link will be helpful ... I do not want to extract this information by examining huge documents of USB classes like CDC, HID and etc ... guide me directly toward my question

Q4- Are there any other Documents except reference manual and the one describing CDC, Audio and etc classes examples in Cube HAL for STM32F7 series USB subsytem which can help me??

Thanks in advance

7 REPLIES 7
TDK
Guru

Q1:

I can get 8 MByte/s reliably and up to 20 MByte/s in some instances with the FS USB over a CDC device.

If you feel a post has answered your question, please click "Accept as Solution".

> 20 MByte/s in some instances with the FS USB

You mean, HS USB, don't you.

JW

Agreed. Actually can get 170Mbit/s in one specific configuration. Unfortunately, the windows VCP driver rarely but occasionally drops packets at that speed. Haven’t solved that problem entirely.
If you feel a post has answered your question, please click "Accept as Solution".
Pavel A.
Evangelist III

>  Unfortunately, the windows VCP driver rarely but occasionally drops packets at that speed.

There are indeed very disturbing reports of data loss and corruption with Win10 usbser driver.

Here for example.

I could not reproduce this and do not know if or how these issues have been treated by Microsoft.

-- pa

Ons KOOLI
Senior III

Hi Memarnejad,

Q1: To begin working with USB, Please refer to the STM32 USB training and https://www.usb.org. You can also see STM32 USB training - 14 USB CDC throughput.

The theoretical value of throughput for USB is as follows:

Low-speed, 10-1500 Kbps

Full-speed, 0.5-12 Mbps

High-speed, 25-480 Mbps

For more details, please refer to the STM32F7 - USB OLT.

The practical value depends on your example and can be measured.

Q2: The number of endpoints used in a USB application depends on the type of transfer if it is interrupt, bulk, isochronous, or control.

The number of endpoints used does not affect the throughput of the whole application, but affects the throughput of the endpoints.

Q3: There is no document that supports composite device class yet provided by ST.

Q4: Please refer to the STM32CubeF7. You can find USB applications for both USB Host and device under the following directories:

\STM32Cube_FW_F7_V1.16.0\Projects\STM32F723E-Discovery\Applications\USB_Device

\STM32Cube_FW_F7_V1.16.0\Projects\STM32F723E-Discovery\Applications\USB_Host

Best Regards,

Ons.

Mehran Memarnejad
Associate III

Hello,

For question 3, I guess ST engineers who developed ST-Link can help me as it provides a virtual serial port along with the mass storage representation (that means a composite device)

Could you please inform them to have a look at my question and help me with

Thanks

Ons KOOLI
Senior III

Hi Memarnejad,

We are sorry that we cannot share internal codes in the forum.

If you are an ST client, or if you need more advanced support, you can go through our FAEs.

The composite device class is not provided by ST yet. There is no documentation , no FW either.

Thanks for your understanding.

Best Regards,

Ons.