I'm using a FTDI Vinculum VDPS (disk, PC, slave) USB controller.
I can access and control devices plugged directly into the Vinculum USB port. When enumerated with QueryDevice they appear as device 0. I select them with SelectDevice 0 and everything works as expected.
When I try with devices plugged in through a hub, the hub appears as device 0 and the other devices appear as devices 1+. However, trying to communicate with them fails. I select them with SelectDevice n, which succeeds, but then, eg, DeviceReadData gives Command Failed.
Is this something people have come across? Am I missing something? I've tested the devices and hub plugged into my Windows PC and everything works as expected.
Some details:
Keyboard plugged directly into USB port.
Send SCS,13,IPH,13,QP2,13,SC,32,0,13 ; ShortCommandSet, IOHex, QueryPort2, SelectCurrent 0
'Ok' replies to all
Send DRD,13 ; DeviceReadData
8-byte keyboard packet returned.
Keyboard plugged into hub plugged into USB port.
Send QD,32,1,13
Returns 32-byte packet saying 'keyboard' and 'device 1'
Send SCS,13,IPH,13,QP2,13,SC,32,1,13 ; SelectCurrent 1
'Ok' replies to all
Send DRD,13 ; DeviceReadData
Responds 'Command failed'