Common¶
-
group
group_hal_usb_dev_common
Typedefs
-
typedef uint8_t
cyhal_usb_dev_ep_t
¶ USB endpoint address (consists from endpoint number and direction)
-
typedef void (*
cyhal_usb_dev_irq_callback_t
)(void)¶ Callback handler for USB Device interrupt.
-
typedef void (*
cyhal_usb_dev_endpoint_callback_t
)(cyhal_usb_dev_ep_t endpoint)¶ Callback handler for the transfer completion event for data endpoints (not applicable for endpoint 0)
-
typedef void (*
cyhal_usb_dev_event_callback_t
)(void)¶ Callback handler for the events for USB Device.
-
typedef void (*
cyhal_usb_dev_sof_callback_t
)(uint32_t frame_number)¶ Callback handler for the events for USB Device.
Enums
-
enum
cyhal_usb_dev_event_t
¶ cyhal_usb_dev_event_t: Service Callback Events.
Values:
-
enumerator
CYHAL_USB_DEV_EVENT_BUS_RESET
¶ Callback hooked to bus reset interrupt.
-
enumerator
CYHAL_USB_DEV_EVENT_EP0_SETUP
¶ Callback hooked to endpoint 0 SETUP packet interrupt.
-
enumerator
CYHAL_USB_DEV_EVENT_EP0_IN
¶ Callback hooked to endpoint 0 IN packet interrupt.
-
enumerator
CYHAL_USB_DEV_EVENT_EP0_OUT
¶ Callback hooked to endpoint 0 OUT packet interrupt.
-
enumerator
Functions
-
cy_rslt_t
cyhal_usb_dev_init
(cyhal_usb_dev_t *obj, cyhal_gpio_t dp, cyhal_gpio_t dm, const cyhal_clock_t *clk)¶ Initialize the USB instance.
- Parameters
obj – [out] Pointer to a USB object. The caller must allocate the memory for this object but the init function will initialize its contents.
dp – [in] The D+ pin to initialize
dm – [in] The D- pin to initialize
clk – [in] The clock to use can be shared, if not provided a new clock will be allocated
- Returns
The status of the initialization request
-
void
cyhal_usb_dev_free
(cyhal_usb_dev_t *obj)¶ Power down the USB instance.
Disable interrupts and stop sending events.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_connect
(cyhal_usb_dev_t *obj)¶ Make the USB device visible to the USB host.
Enable either the D+ or D- pull-up so the host can detect the presence of this device.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_disconnect
(cyhal_usb_dev_t *obj)¶ Detach the USB device.
Disable the D+ and D- pull-up and stop responding to USB traffic.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_suspend
(cyhal_usb_dev_t *obj)¶ Suspend the USB phy.
This allows the device to enter deepsleep. Any data left any USB EP buffers will be lost, when device go into deepsleep. Call cyhal_usb_dev_resume to resume USB from deepsleep.
- Parameters
obj – [in] The usb device object
-
void
cyhal_usb_dev_resume
(cyhal_usb_dev_t *obj)¶ Resume the USB phy from a suspended state.
See also
- Parameters
obj – [in] The usb device object
-
void
cyhal_usb_dev_set_configured
(cyhal_usb_dev_t *obj)¶ Set this device to the configured state.
Enable added endpoints if they are not enabled already.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_set_unconfigured
(cyhal_usb_dev_t *obj)¶ Leave the configured state.
This is a notification to the USBPhy indicating that the device is leaving the configured state. The USBPhy can disable all endpoints other than endpoint 0.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_sof_enable
(cyhal_usb_dev_t *obj, bool enable)¶ Configure start of frame interrupt enablement.
- Parameters
obj – [inout] The USB device object
enable – [in] True to turn on interrupt and start calling sof callback on every frame, False to turn off interrupt and stop calling sof callback.
-
void
cyhal_usb_dev_set_address
(cyhal_usb_dev_t *obj, uint8_t address)¶ Set the USBPhy’s address.
- Parameters
obj – [inout] The USB device object
address – [in] This device’s USB address
-
cy_rslt_t
cyhal_usb_dev_register_irq_callback
(cyhal_usb_dev_t *obj, cyhal_usb_dev_irq_callback_t callback)¶ Register a USB Device callback handler.
This function will be called when the USB interrupt is triggered. This interrupt can be enabled or disabled using cyhal_usb_dev_irq_enable.
- Parameters
obj – [inout] The USB device object
callback – [in] The event handler function which will be invoked when the event fires
- Returns
The status of the register_irq_callback request
-
void
cyhal_usb_dev_irq_enable
(cyhal_usb_dev_t *obj, bool enable)¶ Configure USB Device event enablement.
When the interrupt is enabled and triggered, the function specified by cyhal_usb_dev_register_irq_callback will be called.
- Parameters
obj – [inout] The usb device object
enable – [in] True to turn on events, False to turn off
-
void
cyhal_usb_dev_process_irq
(cyhal_usb_dev_t *obj)¶ Default USB Device interrupt handler.
- Parameters
obj – [inout] The USB device object
-
void
cyhal_usb_dev_register_event_callback
(cyhal_usb_dev_t *obj, cyhal_usb_dev_event_t event, cyhal_usb_dev_event_callback_t callback)¶ The USB Device event complete callback handler registration.
The events are defined by x type.
- Parameters
obj – [inout] The USB device object
event – [in] The event that triggers the callback, see cyhal_usb_dev_event_t
callback – [in] The callback handler which will be invoked when the interrupt fires
-
void
cyhal_usb_dev_register_sof_callback
(cyhal_usb_dev_t *obj, cyhal_usb_dev_sof_callback_t callback)¶ The USB Device start of frame (SOF) complete callback handler registration.
- Parameters
obj – [inout] The USB device object
callback – [in] The callback handler which will be invoked when the interrupt fires
-
typedef uint8_t