4 ms·
This is very, very handy for development purposes - those of us building firmware and drivers for USB devices are very familiar with the need to reset (unplug/r
by boffinAudio 3y ago
This is very, very handy for development purposes - those of us building firmware and drivers for USB devices are very familiar with the need to reset (unplug/replug) devices during development, and being able to do this with I2C and automatable software procedures is a GODSEND .. I've already started the process of getting a couple PCB's made from this project, and have subscribed for futher updates as the devs get their revision made... this project is very valuable for us in the embedded industry, and I for one would like to see software-controllable USB ports become a very standard thing, personally.
So many issues with USB during development can be resolved if you can just get the device reset during the dev process. Being able to hard-reset a device during compile/debug phases is going to save me huge amounts of time and effort ...
- Goz3rr 3y agoSoftware controllable USB ports already are a thing, Per-port power switching can be found in the USB 2.0 spec and there's a bunch of hubs out there that implement it, controllable via USB instead of I2C. Since USB 3.2 any device that has downstream type C ports is required to implement PPPS. A DIY hub that uses a chip with PPPS support can be found here for example: https://oshwlab.com/iamseer/ch335-hub https://oshwlab.com/iamseer/ch335-hub
- boffinAudio 3y agoCool, got any suggestions for products that already implement this, particularly those with existing software shims that could be easily integrated into a test suite? I'd be a happy customer if there were such a thing, easily orderable, but I confess I don't quite know what keywords to use to find it ..
- seba_dos1 3y ago"already"? It's something available since USB 1.0 has been created (see section 11.10). For example, it can be automatically used by the Linux kernel (after setting pm_qos_no_power_off to 0), and recently a node to disable a port explicitly has been added as well. The support for commands themselves (SET/CLEAR_FEATURE) is mandated by the spec, so all hubs support it. However, some hubs don't feature port power control at all (are physically unable to selectively turn off power - you can only turn them all off or not at all), but for those it doesn't matter how you control them ;)