espressif / esp-usb

Other
29 stars 14 forks source link

Speed up tinyusb CDC serial transfer rate on ESP32-S3 (IEC-93) (IEC-232) #54

Open Superberti opened 8 months ago

Superberti commented 8 months ago

Answers checklist.

General issue report

Hi,

I'm using an ESP32-S3 on ESP-IDF on the release/5.2 branch. I made some tests with the tinyusb CDC serial profile but I was not able to get read transfer speeds on the native port (pins 19/20) over 50 KiB/s. The theoretical maximum rate should be something about 1 MiB/s in this mode. Regardless what I'm doing (larger buffers and FIFOs, using tinyusb with or without tusb_config-h), it had no influence on the transfer speed. So it seems that the speed is limited in some other way. The USB port is connected to a C# test program which sends out the data as fast as it can, so this should not be a problem at all. Any ideas how to speedup the CDC read speed?

Thanks and bye, Oliver

tore-espressif commented 7 months ago

Hello @Superberti Thank you much for the report.

We can reproduce the issue and see similar performance. The bottleneck is in the DCD layer of TinyUSB, this will requires significant refactoring. We plan to work this in Q2/2024

Superberti commented 7 months ago

Thank you for clarification on this subject!

tayvs commented 1 week ago

@tore-espressif Hey. Are there any updates? Is there an open issue in tinyUSB that provides latest updates?

tore-espressif commented 1 week ago

The ticket in upstream TinyUSB is here https://github.com/hathach/tinyusb/pull/2576 , it was merged a month ago.

It is already tested on S2 and S3, right now we are preparing P4 support and then we can release new version