USB Controller - kylessukaichang/kylessukaichang.github.io GitHub Wiki

  • Raspberry Pi 4
    • VL805 USB controller
      • The Pi 4 contains two USB 3.0 ports and two USB 2.0 ports which are connected to a VL805 USB controller.
      • On the Pi 4, the USB controller used on previous models is located on the USB type C port and is disabled by default.
  • AM4 based systems
  • on most Intel XHCI controllers
    • There is a hardware limit of 96 endpoints
  • Windows – How to increase the maximum number of USB devices that can be connected at one time in Windows 7
    • One can connect up to 127 devices, including the hub devices, to a single USB host controller.
  • What is the max number of USB 3.0 ports you can have on a single USB hub?
    • Theoretically speaking, this limit is actually determined by the USB controller in your system.
    • The theoretical maximum for an xHCI USB controller (the type used for USB 3.0) is 255 devices, but most controllers only support 96 or 127.
  • HOW MANY USB DEVICES CAN I CONNECT?
    • Maximum tiers
      • The tier number for any USB device is the number of non-root hubs in the connection chain plus 2.
      • The USB specification is limited to a maximum of 7 tiers.
      • Therefore, for there is a hard limit of 5 daisy-chained hubs (not counting the root hub).
    • Controller v.s hub
      • Keep in mind that many low-cost USB expansion cards just add an internal hub.
    • USB ENDPOINTS
      • Each USB device can define up to 32 endpoints (16 inputs and 16 outputs though one must be a control endpoint)
        • most devices only define 2 or 3 endpoints (e.g. data in, data out, and a control endpoint).
        • Hubs themselves also define at least a control endpoint.
      • The XHCI specification allows for a massive 7,906 enpoints!
        • However, common implementations of the XHCI controllers impose their own limit on the total number of endpoints to 96.
  • Fix: Not Enough USB Controller Resources
  • USBView
  • USB Topology