STM32H7S3 USB OTG HS – High-Bandwidth Isochronous (Multi-Transaction per Microframe) Support
Hello ST Community,
I am working on a USB Video Class (UVC) application using STM32H7S3L8 (NUCLEO-H7S3L8) in USB HS device mode.
Requirement:
Streaming 640×480 30fps (YUY2, uncompressed), requiring ~18.4 MB/s bandwidth.
With the STM32 HAL, I can only achieve:
- ~8.2 MB/s (1024 bytes × 1 transaction per microframe)
This limits performance to ~13 fps at 640×480.
USB 2.0 specification allows up to 3 transactions per microframe for high-speed isochronous endpoints.
However in STM32 HAL:
- ep->maxpacket = ep_mps & 0x7FFU masks transaction bits
- No MC (multi-count) handling in DIEPCTL
- Endpoint structure has no field for multiple transactions
- HAL does not configure high-bandwidth isochronous mode
Does STM32H7 USB OTG HS support high-bandwidth isochronous transfers (2x/3x transactions per microframe) in device mode?
If supported:
- Is there any register-level guidance to configure this?
- Any example or application note available?
