cancel
Showing results for 
Search instead for 
Did you mean: 

USB HS CDC stop working if Internal IP DMA is enabled on STM32F469NI

kiran_g
Associate

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:

  1. Is Internal IP DMA for USB HS CDC fully supported on STM32F469NI?

  2. Are there known limitations / errata related to this?

  3. Any additional configuration needed for DMA mode (buffer alignment, cache maintenance, etc.)?

  4. Could this be an issue in Cube/HAL implementation?

Any guidance or reference examples would be helpful.

1 REPLY 1
FBL
ST Employee

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.




Best regards,
FBL