Consumer spec needs an update -- USB


This board is demonstrating a need to update the 96boards consumer specs.
The problem is that while there is a USB-C connector on the board, and despite the host controller being a USB-3.x controller, the USB-C port on the board is only USB-2.0.

I suggest that if the host controller supports USB-3.x, that it should be mandatory to provide a USB-C port supporting USB-3.x. In addition, if the board provides a USB-C, the two USB-A sockets should be optional, since the USB-A sockets would really serve no purpose other than to increase the board’s cost.


How would such an approach work if the mezzanine board uses USB signalling? Wouldn’t this result in no support for user supplied USB devices if the mezzanine were connected.

Above is the most significant concern but I think it would also become rather inelegant connecting a keyboard and mouse to a board with only one socket that can act as USB host. Likewise I think with only one powered host socket other use cases would start requiring powered hubs (SSD, mouse, keyboard).


I suppose you make a point about the mezzanine option. Not the keyboard though, external hubs are cheap.

Either way, the most immediate issue is the lack of USB 3.x on the USB-C socket despite both the host controller and socket supporting it. That socket should be able to operate in host and device mode, while exposing the full USB 3.x supported by the host controller.


For me it’s not really an issue of how much external hubs cost. I hate it when I have to hang external hubs off a board simply to get basic stuff to work.

Is there a use case for this that cannot be addressed using the existing USB-3 type A connectors?

For sure, I can’t see any problem using a USB3 switch for the type C connector but whether we should enforce it in the spec (rather than leaving it to the OEMs discretion) depends so some extent on the use cases is enables.


Well yeah, anything that needs the board to be in device mode, which means for all USB “gadget” drivers.

Ethernet over USB,
Mass storage gadget or MTP,
Audio or video class gadget (i.e., using the board as a UVC camera from another device).

These are all able to exceed the bandwidth available with USB 2.0.


Ok, understood.

Will raise for discussion although it might still be too early to make this mandatory (a quick glance on mouser suggests USB3 switches remain rather expensive).


@danielt: Is a switch actually necessary? Most USB hubs have an “off” switch. A technique I’ve seen used in some SoM’s that have USB hubs, is that the device port is just tee’d into the lines between the SoC and the HUB. When something is connected to the device port, the hub is simply turned off.


Interesting question.

Having USB switch allows all USB cabling to be left attached which makes
the board much more comfortable to use for cross-development (e.g.
bootloader defaults switch to target/OTG mode, OS defaults switch to
host-only mode). Thus I will always prefer to do day-to-day development
on a board with a switch (at least until I find a cheap bit of external
hardware that’s good for isolating a USB connection).

However I can’t see anything in the spec that requires a board designer
to include a switch rather than just push the hub into reset.