2026-04-27 1:08 AM
Hi everyone,
I am developing a project on the STM32N657X0H3Q where I need to implement a Dual CDC ACM composite device.I am following the "Standalone" implementation to avoid a full ThreadX dependency, as I plan to integrate this with a FreeRTOS project (using X-CUBE-FREERTOS).
While looking at the USBX configuration in CubeMX and the ST Wiki (Introduction to USBX), I noticed the option
USBD_COMPOSITE_USE_IAD ( As seen in the picture).
If I enable USBD_COMPOSITE_USE_IAD , can I simply increase the number of CDC ACM class instances in CubeMX to 2?
Does CubeMX automatically handle the IAD grouping for the second CDC instance, or do I need to manually adjust the interface descriptors in the generated ux_device_descriptors.c ?
Can you provide an approach to configure this using MX? Which are all the files that should be edited to configure this.
2026-04-28 2:17 AM
Hello @MSGokul
Enabling USBD_COMPOSITE_USE_IAD in CubeMX is not sufficient for dual CDC ACM support.
/* Activate the IAD option */
#define USBD_COMPOSITE_USE_IAD 1U
You must manually edit the descriptors (in ux_device_descriptors.c) and register both class drivers, enable USE_USBD_COMPOSITE and add composite builder class middleware as detailed in this article.
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.