Gateware that handles USB bus resets & speed detection.

class sol_usb.gateware.usb.usb2.reset.USBResetSequencer(*args, src_loc_at: int = 0, **kwargs)

Gateware that detects reset signaling on the USB bus.

  • low_speed_only (Signal(), input) – If set, the device will be forced to operate as a low-speed device.

  • prevent_high_speed (Signal(), input) – If set, the device will be prohibited from entering high-speed states; and will thus act like it’s a full speed device (low_speed_only = 0).

  • bus_busy (Signal(), input) – Hold-off signal that indicates that driving the bus should be delayed.

  • vbus_connected (Signal(), input) – Indicates that the device is connected to VBUS. When this is de-asserted, the device will be held in perpetual bus reset, and reset handshaking will be disabled.

  • line_state (Signal(2), input) – The UTMI linestate signals; used to read the current state of the USB D+ and D- lines.

  • bus_reset (Signal(), output) – Strobe; pulses high for one cycle when a bus reset is detected. This signal indicates that the device should return to unaddressed, unconfigured, and should not longer be in High Speed mode.

  • suspended (Signal(), output) – Held high while the USB device should be in suspend. This technically indicates that the device should drop down to consuming suspend current (<= 2.5mA), but very few devices are compliant with this requirement. Either way, a polite device might reduce its power consumption while in suspend.

  • current_speed (Signal(2), output) – A USBSpeed value that indicates the current operating speed. Used both to drive our device’s knowledge of operating speed and to drive our PHY’s speed selection.

  • operating_mode (Signal(2), output) – The current UTMI operating mode. Used to select whether we’re driving the USB bus directly; or whether we’re letting the PHY handle NRZI/bit-stuffing.

  • termination_select (Signal(), output, default = 1) – Determines the bus termination mode. In LS/FS, this determines the presence of our presence-detect pull-up. In HS mode, this determines whether the USB high-speed termination is present (0), or whether we’re in chirp mode (1).

  • tx (UTMITransmitInterface, output stream) – Our UTMI transmit interface; used to drive chirp signaling onto the bus.