Rebel1 said:
VanguardLH offered simple advice that solved the problem without having
to change the OS or using a RS232 mouse, which I don't have. Thanks
anyway for the feedback.
R1
I'm really surprised it's a USB sharing problem.
*******
USB sharing occurs at two different ratios. Devices running at USB2
rates, they're shared over as many as six ports. My chipset has two
USB2 masters for a total of 12 ports for example. If I had a conflict
between two USB2 devices, I'd have to move them so they were on
different masters.
USB2_host USB2_host
| | | | | |
/ \ / \ / \ / \ / \ / \
Traditionally, USB1.1 sharing is in pairs of two. And also, the pairs
of two are arranged in stacks. So if you're looking at the back of the
computer, the ports in twos, they could be sharing when tun at USB 1.1
rates. On my machine, the mapping would look like this
USB1.1_host USB1.1_host USB1.1_host USB1.1_host USB1.1_host USB1.1_host
| | | | | |
/ \ / \ / \ / \ / \ / \
If you placed a USB keyboard and USB mouse, one above the other,
I would not have expected enough bandwidth usage from those two,
to interfere with one another. If you placed a USB key above the
USB mouse, and the USB key only supported USB 1.1 rate transfers,
then that could cause a sharing problem.
But normally, a USB key would support USB 2.0. And in a sense, if
you placed a USB 2.0 key above a USB 1.1 mouse, they'd be on different
masters, and there shouldn't be a sharing issue. (When a device is
plugged in, the negotiation sequence moves the device to the
appropriate tree. Either the top row or the bottom row.)
USB2_host USB2_host
| | | | | |
/ \ / \ / \ / \ / \ / \
|
key(2.0)
USB1.1_host USB1.1_host USB1.1_host USB1.1_host USB1.1_host USB1.1_host
| | | | | |
/ \ / \ / \ / \ / \ / \
|
mouse(1.1)
To complicate matters, AMD, in some of the more recent chipsets,
changed the ratio on USB 1.1 ports, to three ports per master.
So if you had a USB 1.1 sharing problem, there is no longer a
simple mapping between "masters" and "stacks". You'd need to use
UVCView to tell which master was controlling which port - and
the port mapping would only be apparent as you plugged a test
device into each port, and watched where it showed up in the
UVCView window.
(Modern AMD chipset, 4 USB 1.1 masters for 12 ports)
USB1.1_host USB1.1_host USB1.1_host USB1.1_host
|___________ ___________| |___________ ___________|
/ \ / \ / \ / \ / \ / \
1 2 3 1 2 3 1 2 3 1 2 3
So all in all, I wouldn't have suspected that sharing was the
problem. Storage devices tend to be USB 2.0 capable, and
they should only really interfere with other USB 2.0 capable
devices. You'd have to be doing an external USB disk to
external USB disk transfer, to notice that moving one of the
disks to the other set of six ports, made a difference.
And on USB 1.1 devices, generally there isn't enough traffic
to get even near to the 1MB/sec transfer rate. You'd need a
USB 1.1 webcam to bollox up the works. Or an ancient USB 1.1
key (there were some of those). There are also some USB 2.0
keys with less than 1MB/sec transfer rates, but such a device
wouldn't count (it only gives the impression it is running
at USB 1.1, when in fact the flash chip is slowing down the
USB 2.0 transfers - UVCView will tell you what it is really
doing).
On very old motherboards and chipsets, we used to see interrupt
sharing issues. USB masters use interrupts too, to alert the
processor when service is required (i.e. the last command to
send a polling packet, has come back). In my Device Manager
resource view, I have lots of sharing going on, and I've never
seen an impact from sharing. For example, reading or writing
my SATA drives, doesn't upset my audio (which is on the same IRQ).
Being on the same IRQ, means that the IRQ chain must be
checked in software, until the interrupting thing is
identified. That means there is some serialization, and the
second thing checked might see a slightly longer delay before
it gets serviced. But I've never seen any evidence here,
that it makes a difference. That would be down in the microsecond
range. It might, if the processor was a lot slower, or if there
wasn't an IOAPIC to steer the interrupts to different cores.
(You'll notice only five USB1.1 masters are listed here. And
only five pairs of ports are accessible in total on the motherboard
PCB. So the BIOS must have turned the sixth unused one, off.)
http://img521.imageshack.us/img521/2216/devman.gif
Here, you can see my UVCView, with some USB devices visible. Entries
for devices only appear, if you have a peripheral plugged in. I have
two USB to RS232 converters and a USB mouse. Physically, they're
all on different stacks on the back (purely by accident). I haven't
used the RS232 converters in some time, so they're normally quiet.
http://img41.imageshack.us/img41/8439/uvcviewed.gif
You can have sharing issues, but it would take careful planning
to get just the right combination of USB stuff, to do it. Maybe
plugging a USB 2.0 webcam, into the same "master of six" as
a USB 2.0 external hard drive, would be enough to do it (cause
dropped frames on the webcam, if the disk was storing the
stream - the webcam stream is generally compressed now as it's
travelling over the wire, which helps reduce the impact). But
finding enough ancient USB 1.1 devices to screw things up, would
take a lot of luck to get just right.
Paul