How to create two USB devices (with two device descriptor tables and two PID+VID pairs) on nRF5340?

Hi,

Is it possible to create two separate USB devices on nRF5340? My application requires three USB classes: Audio, CDC and DFU. Currently I am using all three in a composite configuration. However, if DFU class is paired with any other class, then it is not possible to perform DFU using dfu-util tool on Windows host. This is a Windows OS issue, and the only workaround for performing DFU on a Windows host seems to be having the DFU class in the device descriptor. See my related ticket here which shows the current configuration that I am using:

devzone.nordicsemi.com/.../performing-dfu-on-usb-dfu-device-composite-device-with-cdc-acm-using-dfu-util-tool-on-windows-fails

Since I also want the CDC and Audio classes in my application, I was exploring the possibility of creating two separate USB devices on nRF, one which will have only the DFU class and the other will have CDC and Audio classes. Both these devices will obviously have different PID+VIDs. As a result, when I have perform DFU, I will access the first device on the Windows host, and for using the CDC or the Audio interfaces I will access the second device.

I did not find a way to do this in the Zephyr OS, but maybe I missed something. Can you please confirm whether such a configuration is possible or not? And if it is possible, how to do it?

Thanks and regards,

Rashmi

Related