Re: A simple USB question



Op Fri, 08 Jun 2007 10:55:10 +0200 schreef Boudewijn Dijkstra <boudewijn@xxxxxxxxx>:
Op Fri, 08 Jun 2007 10:31:06 +0200 schreef Mouarf <toto@xxxxxxx>:
Le Wed, 06 Jun 2007 16:43:29 +0200, Boudewijn Dijkstra <boudewijn@xxxxxxxxx> a écrit:

Op Wed, 06 Jun 2007 16:12:23 +0200 schreef Mouarf <toto@xxxxxxx>:
Le Wed, 06 Jun 2007 16:00:37 +0200, Boudewijn Dijkstra <boudewijn@xxxxxxxxx> a écrit:

Op Wed, 06 Jun 2007 13:56:00 +0200 schreef vasu <vasu.sharma@xxxxxxxxx>:
Hi! I have an AT91SAM7S-EK kit with an AT91SAM7S256 microcontroller.
This microcontroller supports 4 Endpoints - EP0, EP1, EP2 and EP3. I
am using the USB to communicate with a legacy application running on
the PC. This application can only communicate on a COM port. So, I use
the USB to provide a virtual COM port on the PC with which this
application can communicate. My question is - Can I create more than 1
virtual COM port on the PC with 1 USB connection?

If your legacy driver can only recognize a single COM port per USB device, you could create a 'compound device', which acts to the outside as a USB-hub.

what about a composite device with 2 COM ports? Is it possible?

compound == composite

I've read in "USB Complete" that compound=1 device + hub and composite=1 device with multiple functions I may have badly understood

My copy of the USB 2.0 standard says:
"However, a physical package may implement multiple functions and an embedded hub with a single USB cable. This is known as a compound device."
and
"From the host's perspective, a compound device is the same as a separate hub with multiple functions attached."

Sorry for the confusion. The complete paragraph in section 5.2.3 reads:
"Multiple functions[1] may be packaged together in what appears to be a single physical device. For example, a
keyboard and a trackball might be combined in a single package. Inside the package, the individual
functions are permanently attached to a hub and it is the internal hub that is connected to the USB. When
multiple functions are combined with a hub in a single package, they are referred to as a compound device.
The hub and each function attached to the hub within the compound device is assigned its own device
address. A device that has multiple interfaces[2] controlled independently of each other is referred to as a
composite device. A composite device has only a single device address. From the host’s perspective, a
compound device is the same as a separate hub with multiple functions attached. Figure 5-5 also illustrates
a compound device."

Note that this is the only paragraph in the standard where composite devices are mentioned.

And from the Terms and Abbreviations:
[1] "Function = A USB device that provides a capability to the host, such as an ISDN
connection, a digital microphone, or speakers."
[2] "Interface" is not defined in the Terms and Abbreviations.

So compound != composite.


--
Gemaakt met Opera's revolutionaire e-mailprogramma: http://www.opera.com/mail/
.



Relevant Pages

  • 2.6.10-rc1 & ahci & IHC6R & 925X & raid1
    ... usb modules for console, usb keyboard, network and starting a shell. ... ACPI: PM-Timer IO Port: 0x808 ... PCI: PCI BIOS revision 2.10 entry at 0xfb768, ... usbcore: registered new driver hub ...
    (Linux-Kernel)
  • Re: 2.6.5-rc2-mm4 (and 3) IRQ problem
    ... ACPI: Power Resource ... ata2: SATA port disabled. ... ehci_hcd 0000:00:1d.7: new USB bus registered, ... ehci_hcd 0000:00:1d.7: root hub device address 1 ...
    (Linux-Kernel)
  • hda: dma_timer_expiry: dma status == 0x24
    ... 0000:00:10.0 USB Controller: VIA Technologies, ... usbcore: registered new driver hub ... ACPI: Power Button ... hub 1-0:1.0: individual port over-current protection ...
    (Linux-Kernel)
  • Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793
    ... When the USB reciever is already plugged-in at boot-time and the ... hub 2-2:1.0: USB hub found ... Interface Descriptor: ... Hub Port Status: ...
    (Linux-Kernel)
  • [PROBLEM] 2.6.0-test11: USB freezes after gnome-pilot
    ... and I have a Palm M515 connected thru the USB ... drivers/usb/core/usb.c: registered new driver hub ... hub 1-0:1.0: Port indicators are not supported ... hub 1-0:1.0: power on to power good time: 2ms ...
    (Linux-Kernel)