Hello Alice,
I was able to recreate the same issue using the SDK demo you suggested.
I continue to see the same pattern of one transfer is ACKed and the next is NAKed.
juan_guzman_0-1762879713110.png
I measured the execution time from the entry into the USB ISR to the USB Stack callback function USB_DevicePrinterAppCallback(). This time is 13.2 uS
juan_guzman_1-1762880137210.png
juan_guzman_2-1762880258513.png
I also measured the execution of the USB_DevicePrinterRecv(), this time is 16.0 uS
juan_guzman_3-1762880620465.png
So the entire time for the USB Stack to handle a Bulk frame and reactivate the Endpoint is 13.2uS + 16uS = 29.2 uS. This is pretty much in line to what I'm seeing on my project.
Please let me know if the Stack can be optimized to achieve a better USB transfer efficiency.
Attached is the USB Analyzer trace and also the test file I used.
Thank You,