H7B3: USB with DMA generates many interrupts
Describe the set-up I'm using a H7B3 on a custom board. On this board I want to use USB with Azure USBx. The USB configuration in CubeMX is:
- USB host only
- DMA enabled
- internal PHY
- Speed: FullSpeed
I'm using CubeIDE 1.10.1. The USB device I want to use with the USB Host is a Prolific-Device.
Describe the bug Regarding the Reference Guide, USB interrupts like NAK, NYET, ... should be handled automatically by the DMA. But when I use the confguration above the interrupts never get disabled in USB_HC_StartXfer. And the interrupts get fired very often and have a huge influence on the performance of the controller.
How To Reproduce
- Set a breakpoint into the function USB_HC_StartXfer.
- Connect a prolific device
- Step through function
USBx_HC((uint32_t)ch_num)->HCINTMSK &= ~(USB_OTG_HCINTMSK_NYET |
USB_OTG_HCINTMSK_ACKM |
USB_OTG_HCINTMSK_NAKM);
- The code block above gets neve reached because of this check here:
if (((USBx->CID & (0x1U << 8)) != 0U) && (hc->speed == USBH_HS_SPEED))
Additional context It has to do with this issue here: https://community.st.com/t5/stm32-mcus-products/stm32f4-stm32f7-usb-host-core-interrupt-flood/td-p/436225
But the interrupts still get triggered even when DMA is enabled
Screenshots If applicable, add screenshots to help explain your problem.
Hello @PiPointX,
Thank you for this report. We will get back to you as soon as we analyze it further. This may take some time. Thank you for your comprehension.
With Regards,