Keil Logo Arm Logo

Discussion Forum

USB: Multiple IADs in composite device?

Next Thread | Thread List | Previous Thread Start a Thread | Settings

Details Message
Read-Only
Author
Pavel Faltynek
Posted
13-Feb-2009 07:34 GMT
Toolset
ARM
New! 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:
https://www.usb.org/phpbb/viewtopic.php?t=13610
https://www.usb.org/phpbb/viewtopic.php?t=13308
http://www.cygnal.org/ubb/Forum9/HTML/001050.html
http://www.cygnal.org/ubb/Forum9/HTML/001572.html
http://www.techtalkz.com/microsoft-device-drivers/265030-implementing-multiple-cdcs.html

Read-Only
Author
Tsuneo Chinzei
Posted
13-Feb-2009 10:41 GMT
Toolset
ARM
New! RE: USB: Multiple IADs in composite device?

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

The second interface is MI_02, instead of MI_01.
It matches to the interface number of Communication Class interface of each unit.

[DeviceList]
%DESCRIPTION% = MCB2300USB, USB\VID_vvvv&PID_pppp&MI_00, USB\VID_vvvv&PID_pppp&MI_02

Tsuneo

Read-Only
Author
Tsuneo Chinzei
Posted
13-Feb-2009 11:01 GMT
Toolset
ARM
New! RE: USB: Multiple IADs in composite device?

Delete the device instance(s) of the VID/PID on Device Manager, when you change
- device descriptor and/or configuration desc set on the firmware
- INF file

USBDeview is a helpful to delete (uninstall) the device instances.

USBDeview
http://www.nirsoft.net/utils/usb_devices_view.html

You may need to delete the copy of old INF file.
The INF file is copied to C:\Windows\inf folder, which is invisible (hidden) as the default.

- Make this inf folder visible using Toos > folder options, display tab - "display all files and folders".
Copied INF file is renamed to oemNNN.inf (NNN = number) in this folder

- Search the contents of *.inf files for the VID/PID
grep or Windows buit-in "Search" will do this work.

- Delete oemNNN.inf and oemNNN.pnf pair, which has the VID/PID

Tsuneo

Read-Only
Author
Pavel Faltynek
Posted
13-Feb-2009 11:21 GMT
Toolset
ARM
New! RE: USB: Multiple IADs in composite device?

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

Next Thread | Thread List | Previous Thread Start a Thread | Settings

Keil logo

Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.