This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

USB: Multiple IADs in composite device?

Hi,

I would like to be able to construct composite USB device encapsulating N serial ports. Having used CDC/ACM class and some examples from Keil (Keil\ARM\Boards\Keil\MCB2300\USBCDC) for LPC2386 adopted to my target board, it is not a problem to have one port app working.

Also after updating the descriptor to associate Comm and Data classes into single IAD the device still seems to work ok (WinXP SP3, usbser.sys 5.1.2600.5512, uspccgp 5.1.2600.5585).

When I duplicate whole IAD section once more in the config, the device still operates and two IADs are recognized (USBlyzer SW), but only one serial port instance is created.

Is there a need to update also the .inf file (Keil\ARM\Boards\Keil\MCB2300\USBCDC\mcb2300-vcom.inf) to be able to "install multiple drivers" for each function?
Regarding one of sources, I appended an MI_00, MI_01 to items on [DeviceList], cleared the device manager, replugged the device, but windows refuses "updated" inf.

Maybe wrong descriptors, maybe wrong inf (any resources to get oriented in this magic?), maybe both.

Any help/advice/tips appreciated.
Thanks.

Resources I used:
www.usb.org/.../viewtopic.php
www.usb.org/.../viewtopic.php
www.cygnal.org/.../001050.html
www.cygnal.org/.../001572.html
www.techtalkz.com/.../265030-implementing-multiple-cdcs.html

Parents
  • Tsuneo,

    thanks for quick responses and patience answering the same things again and again. Also I would like to thank you for all your posts/examples/etc. in different forums. Very helpfull stuff. I noticed lot of people still search for multiple virtual COM info, so if you would consider this as an another subject for one of your examples, I think many people would appreciate it.

    Meanwhile in the continuous process of research and trying, I have found few bugs in descriptors (e.g. had 0xfe instead of 0xef for MISC class, forgot update total number of interfaces, ...).

    Also found on some forum the MI_xx stands for multiple interface and thus the number is interface number. So now looks like the Windows determines the right device (composite one instead of single CDC) and "installs" drivers per function. Your example .inf file (from CDC/IAD & HID composite) helped me alot.

    Regards Pavel

Reply
  • Tsuneo,

    thanks for quick responses and patience answering the same things again and again. Also I would like to thank you for all your posts/examples/etc. in different forums. Very helpfull stuff. I noticed lot of people still search for multiple virtual COM info, so if you would consider this as an another subject for one of your examples, I think many people would appreciate it.

    Meanwhile in the continuous process of research and trying, I have found few bugs in descriptors (e.g. had 0xfe instead of 0xef for MISC class, forgot update total number of interfaces, ...).

    Also found on some forum the MI_xx stands for multiple interface and thus the number is interface number. So now looks like the Windows determines the right device (composite one instead of single CDC) and "installs" drivers per function. Your example .inf file (from CDC/IAD & HID composite) helped me alot.

    Regards Pavel

Children
No data