New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't receive packets immediately when usb packet equals CFG_TUD_ENDPOINT0_SIZE #2456
Comments
Are you sure a zlp was sent ? Normally it has to be done explicitly. |
Well,
-> So it's seems that the the stm32u575 is not correctly initialised by tinyusb? Still need to take a deeper look |
The issue appears when CFG_TUD_CDC_RX_BUFSIZE CFG_TUD_CDC_TX_BUFSIZE and CFG_TUD_CDC_EP_BUFSIZE have a different definition than CFG_TUD_ENDPOINT0_SIZE. It's still a mystery to me why that is the case |
Please enable debug print which gives you much more information. |
USB 2.0 specification:
So it's a intended behavior. If you need to receive packet immediately:
ST's lib works as it queue data length equal to EP size:
|
Operating System
Linux
Board
STM32U575
Firmware
938cae8
What happened ?
I dont receive USB packets when they are the maximum packet size CFG_TUD_ENDPOINT0_SIZE immediately. I do receive when the host sends more bytes. (The host is a linux PC). So it's seem that the incoming ZLP isn't processed.
If I trigger handle_epout_irq manually, the packet is still not processed. So the packet is for some reason not provided yet by the hardware.
How to reproduce ?
USB device with dualport CDC. Send exactly 64 bytes on FS connection
Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)
Will add later
Screenshots
No response
I have checked existing issues, dicussion and documentation
The text was updated successfully, but these errors were encountered: