Showing results for 
Search instead for 
Did you mean: 

STM32: To achieve high speed over usb2.0 @60Mhz


Hello Team,

I have developed a custom board having external PHY to drive USB in HS mode. The board consist of STM32h743zit6 controller and PHY from microchip USB3320C driven by an external clock of 52 Mhz.

Although the configuration has setup using CDC mode (HS) but the speed we are getting is not greater than 6MBytes/Sec (checked on Ubuntu system using Libusb). Our target speed has to achieve is 35 MBytes/Sec.

Also The device is getting recognized by windows as a VCP (virtual com port) not as a universal serial bus device.

Now, my question is what has to done additionally for below:

To boost up the usb data rate up to 35 Mbytes/sec?

The device should not recognize as a VCP?


I would be very grateful if someone get me out to this problem.



Krishna Vashistha

Pavel A.
Evangelist III

On the software side, performance of USB device depends on the max. size of the data endpoint (in the EP descriptor) and on the software (driver) on the host. USB device can send only when the host polls it with desired frequency. The "VCP" driver on Windows (for CDC-ACM class),  usbser.sys, is stable and well tested. It isn't likely that *much* better performance can be achieved with a custom driver. If you make the device a custom-class "WINUSB" device instead of CDC, you can directly work with the device using the winusb driver & library, this may yield better performance and more flexibility (several custom endpoints).  On Linux you can assign any driver to the device and use libusb on it, without changing the descriptors.

A good software consultant can help with the device descriptors and host side software (winusb or libusb). The best of these even bring their own USB analyzer))