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
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