AnsweredAssumed Answered

STM32F777VI USB enumeration fails with DMA enabled

Question asked by ehcsur on Apr 4, 2018
Latest reply on Apr 5, 2018 by Nils -

We have the STM32F777VI in HS USB mode using external ULPI. We are using the CDC virtual com port (VCP) example with V1.2.5 HAL Driver and V2.4.2 USB Device Library. Without DMA everything works fine. But as soon as DMA is enabled (hpcd.Init.dma_enable = 1) the USB enumeration will fail at the very first response (device descriptor request). Wireshark and usbmon on the linux host will show that the descriptor response status from the STM32F7 is -EPIPE

usb descriptor response with dma enabled

When I try to debug the problem on STM32F7 side the correct packet and size is given to the DMA. The buffer is 4-byte aligned. I wondered if the packet size must also be a multiple of 4, but it doesn't seem to matter.

L1 cache (D-Cache and I-Cache) is disabled.

Is there a dedicated clock for USB DMA which needs to be activated?

Does someone have a hint?

Outcomes