Control
Low-level USB transceiver gateware – control transfer components.
- class sol_usb.gateware.usb.usb2.control.USBControlEndpoint(*args, src_loc_at: int = 0, **kwargs)
Gateware that manages control request data progression.
This class is used by creating one or more request handler modules; which define how requests are handled. These handlers can be bound using
add_request_handler
.For convenience, this module can also automatically be populated with a
StandardRequestHandler
via theadd_standard_request_handlers
.- Variables:
interface (EndpointInterface) – The interface from this endpoint to the core device hardware.
- Parameters:
utmi (UTMI bus, or equivalent translator) – The UTMI bus we’ll monitor for data. We’ll consider this read-only.
endpoint_number (int, optional) – The endpoint number for this control interface; defaults to (and almost always should be) zero.
standalone (bool) – Debug parameter. If true, this module will operate without external components; i.e. without an internal data-CRC generator, or tokenizer. In this case, tokenizer and timer should be set to None; and will be ignored.
- add_request_handler(request_handler)
Adds a ControlRequestHandler module to this control endpoint.
No arbitration is performed between request handlers; so it’s important that request handlers not overlap in the requests they handle.
- add_standard_request_handlers(descriptors: DeviceDescriptorCollection, **kwargs)
Adds a handlers for the standard USB requests.
This will handle all Standard-type requests; so any additional request handlers must not handle Standard requests.
Parameters will be passed on to StandardRequestHandler.