2025-08-24 10:47 PM - last edited on 2026-01-24 11:24 AM by mƎALLEm
Hi,
I am working on STM32F469NI using the USB OTG HS peripheral in CDC (VCOM) mode.
When using USB CDC without DMA, the VCOM works fine.
However, when I enable Internal IP DMA (from CubeMX → USB_OTG_HS → Parameter Settings → Enable internal IP DMA), the USB CDC communication stops working after some time.
Setup details:
MCU: STM32F469NI
USB mode: Device (CDC VCOM)
PHY: Internal FS PHY
DMA Mode: Internal IP DMA enabled for USB_OTG_HS
Running on custom board
Observed behavior:
On PC, the VCOM port is detected correctly.
Initially, data transfer works fine.
After some time (or after repeated Tx/Rx), the communication hangs completely. No data transfer occurs until reset.
If I disable Internal IP DMA, the issue goes away.
What I tried:
Checked buffer alignment (made Tx buffers 4-byte aligned).
Verified HAL callbacks (CDC_Transmit_FS etc.) are still being called.
Questions:
Is Internal IP DMA for USB HS CDC fully supported on STM32F469NI?
Are there known limitations / errata related to this?
Any additional configuration needed for DMA mode (buffer alignment, cache maintenance, etc.)?
Could this be an issue in Cube/HAL implementation?
Any guidance or reference examples would be helpful.
2026-01-26 6:28 AM
Hi @kiran_g
Did you allocate additional FIFO space needed for DMA operations. To learn more you can follow the knowledge base article provided here and practical use cases in FIFO helper sheet.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.