This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I am currently using a microcontroller to emulate a USB hub for three devices (i.e. - the raw data is processed and transferred on three unique endpoints within the microcontroller), which shows up to the PC as a Composite USB device. Because of timing issues, I am considering breaking out one of these devices, a trackball, and running it directly into a USB hub instead of processing the data through the uC. The other two devices would then be transmitted together from the uC through the USB hub on a second channel. My question is whether this configuration will work and if all three devices will be properly recognized by the host as a single composite device, assuming I set up the USB hub with the correct registers. My assumption is that the uC will be acting like a downstream USB hub, which from what I can tell is acceptable, but I would like to be sure. (I also don't know if this will improve the timing issues that I am having, but it's worth considering!)
Thanks in advance,
Brandon
Brandon,
Since the MCU and the trackball are on different ports of the discrete hub, they will show up as separate devices per the USB spec - each port of a hub is handled separately by the host and OS.
Are you sure the MCU currently shows up as a hub or just as a composite device?
Per the USB spec
For a composite device, the host only assigns a single address. For a standard hub, the host assigns a single address. For a compound device, multiple address are assigned - one for the hub and one for each of the integrated peripherals.
Thanks DHarmon,
I am fairly new to USB, so I apologize for my incorrect verbage. You are correct that the MCU is acting as a composite device and not as a hub. So, if I understand correctly, integrating the hub IC as the first stage in my design would result in the host seeing two devices on the hub: 1. the trackball, and 2. a composite device made up of two interfaces. That should clear up any potential delays in the trackball-to-host reporting and minimize the reprogramming that I need to do in the MCU.
Thanks for the help on this.
Brandon