This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB composite device, PID(s)

Hi

I am currently working on a device which should support the following 3 USB devices:

- DFU

- MSD

- CDC (virtual serial port)

I (think) that I have successfully combined these 3 devices into a composite device. Now, however, I am not sure how I should handle the VID / PIDs and the windows drivers. I have searched the forum and the internet in general, but I have not found any clear answers...

With a composite device of 3 devices, will I need 1 PID (for the composite device), 3 PIDs (for the 3 devices in the composite device) or 4 PIDs (1 for the composite + 3 for the other devices)?

Also, In case that I need more than one PID, should they then all be unique for the product (e.g. assigned by TI and using the TI VID)?, or will it be sufficient to have a unique PID for the composite device and let the remaining devices have dummy PIDs?

And on the Windows side, do I need one driver description file (*.inf) for the composite device or should/can I have multiple driver files for each device in the composite device?

I will appreciate any help you can provide.

I am using a custom TM4C123* board, TivaWare and CCS6.

Br

Christian

  • Hello Christian,

    A composite device has a single VID/PID and uses the interfaces or endpoints for communication. So even the inf file will have one VID/PID

    Regards
    Amit
  • Hi Amit,

    thanks for the prompt and clear answer!!

    I need now to create a USB composite device driver for windows supporting the DFU, MSD and CDC devices. Maybe you could point me in the right direction?

    br
    Christian
  • Hello Christian,

    May be the following example would be useful. I do not have the source projects for the USB composite device drivers but this would be the closest

    D:\ti\TivaWare_C_Series-2.1.0.12573\examples\boards\dk-tm4c129x\boot_demo_usb

    Regards
    Amit
  • Hi Amit, 

    thanks for your reply.

    I had expected the MCU USB side to be the most complecated, but now it seems to me that the windows drivers are much more combersome. 

    I think I will skip the composite device setup for now and try to make a design where only one device has to be active at one time. 

    Br

    Christian