|
|
- # group `udc_group` {#group__udc__group}
-
- The UDC provides a high-level abstraction of the usb device. You can use these functions to control the main device state (start/attach/wakeup).
-
- USB Device Custom configurationThe following USB Device configuration must be included in the [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file of the application.
-
- USB_DEVICE_VENDOR_ID (Word)
- Vendor ID provided by USB org (ATMEL 0x03EB).
-
- USB_DEVICE_PRODUCT_ID (Word)
- Product ID (Referenced in [usb_atmel.h](.build/docs/internals_undefined.md#usb__atmel_8h)).
-
- USB_DEVICE_MAJOR_VERSION (Byte)
- Major version of the device
-
- USB_DEVICE_MINOR_VERSION (Byte)
- Minor version of the device
-
- USB_DEVICE_MANUFACTURE_NAME (string)
- ASCII name for the manufacture
-
- USB_DEVICE_PRODUCT_NAME (string)
- ASCII name for the product
-
- USB_DEVICE_SERIAL_NAME (string)
- ASCII name to enable and set a serial number
-
- USB_DEVICE_POWER (Numeric)
- (unit mA) Maximum device power
-
- USB_DEVICE_ATTR (Byte)
- USB attributes available:
-
- * USB_CONFIG_ATTR_SELF_POWERED
-
- * USB_CONFIG_ATTR_REMOTE_WAKEUP Note: if remote wake enabled then defines remotewakeup callbacks, see Table 5-2. External API from UDC - Callback
-
- USB_DEVICE_LOW_SPEED (Only defined)
- Force the USB Device to run in low speed
-
- USB_DEVICE_HS_SUPPORT (Only defined)
- Authorize the USB Device to run in high speed
-
- USB_DEVICE_MAX_EP (Byte)
- Define the maximum endpoint number used by the USB Device.
- This one is already defined in UDI default configuration. Ex:
-
- * When endpoint control 0x00, endpoint 0x01 and endpoint 0x82 is used then USB_DEVICE_MAX_EP=2
-
- * When only endpoint control 0x00 is used then USB_DEVICE_MAX_EP=0
-
- * When endpoint 0x01 and endpoint 0x81 is used then USB_DEVICE_MAX_EP=1
- (configuration not possible on USBB interface)
-
- ## Summary
-
- Members | Descriptions
- --------------------------------|---------------------------------------------
- `public inline static bool `[`udc_include_vbus_monitoring`](#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca)`(void)` | Authorizes the VBUS event.
- `public void `[`udc_start`](#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` | Start the USB Device stack.
- `public void `[`udc_stop`](#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` | Stop the USB Device stack.
- `public inline static void `[`udc_attach`](#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b)`(void)` | Attach device to the bus when possible.
- `public inline static void `[`udc_detach`](#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda)`(void)` | Detaches the device from the bus.
- `public inline void `[`udc_remotewakeup`](#group__udc__group_1ga52c0439e5f6e471a9570471f00476260)`(void)` | The USB driver sends a resume signal called *"Upstream Resume"* This is authorized only when the remote wakeup feature is enabled by host.
- `public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` | Returns a pointer on the current interface descriptor.
-
- ## Members
-
- #### `public inline static bool `[`udc_include_vbus_monitoring`](#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca)`(void)` {#group__udc__group_1ga70d88509bac27ef9c25f693dd21d91ca}
-
- Authorizes the VBUS event.
-
- #### Returns
- true, if the VBUS monitoring is possible.
-
- VBus monitoring used casesThe VBus monitoring is used only for USB SELF Power application.
-
- * By default the USB device is automatically attached when Vbus is high or when USB is start for devices without internal Vbus monitoring. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file does not contains define USB_DEVICE_ATTACH_AUTO_DISABLE.
- ```cpp
- //#define USB_DEVICE_ATTACH_AUTO_DISABLE
- ```
-
- * Add custom VBUS monitoring. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file contains define USB_DEVICE_ATTACH_AUTO_DISABLE:
- ```cpp
- #define USB_DEVICE_ATTACH_AUTO_DISABLE
- ```
- User C file contains:
- ```cpp
- // Authorize VBUS monitoring
- if (!udc_include_vbus_monitoring()) {
- // Implement custom VBUS monitoring via GPIO or other
- }
- Event_VBUS_present() // VBUS interrupt or GPIO interrupt or other
- {
- // Attach USB Device
- udc_attach();
- }
- ```
-
- * Case of battery charging. [conf_usb.h](.build/docs/internals_undefined.md#conf__usb_8h) file contains define USB_DEVICE_ATTACH_AUTO_DISABLE:
- ```cpp
- #define USB_DEVICE_ATTACH_AUTO_DISABLE
- ```
- User C file contains:
- ```cpp
- Event VBUS present() // VBUS interrupt or GPIO interrupt or ..
- {
- // Authorize battery charging, but wait key press to start USB.
- }
- Event Key press()
- {
- // Stop batteries charging
- // Start USB
- udc_attach();
- }
- ```
-
- #### `public void `[`udc_start`](#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7)`(void)` {#group__udc__group_1gadf4e193509cd03ab6333d62629ea51e7}
-
- Start the USB Device stack.
-
- #### `public void `[`udc_stop`](#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972)`(void)` {#group__udc__group_1gae2264dd91b24db9d4bb23fb1a2014972}
-
- Stop the USB Device stack.
-
- #### `public inline static void `[`udc_attach`](#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b)`(void)` {#group__udc__group_1ga2e71c4c6090543bc3bab06e710e2ee6b}
-
- Attach device to the bus when possible.
-
- If a VBus control is included in driver, then it will attach device when an acceptable Vbus level from the host is detected.
-
- #### `public inline static void `[`udc_detach`](#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda)`(void)` {#group__udc__group_1ga702d387f5ebfc2e0ab41667eb7644dda}
-
- Detaches the device from the bus.
-
- The driver must remove pull-up on USB line D- or D+.
-
- #### `public inline void `[`udc_remotewakeup`](#group__udc__group_1ga52c0439e5f6e471a9570471f00476260)`(void)` {#group__udc__group_1ga52c0439e5f6e471a9570471f00476260}
-
- The USB driver sends a resume signal called *"Upstream Resume"* This is authorized only when the remote wakeup feature is enabled by host.
-
- #### `public `[`usb_iface_desc_t](.build/docs/internals_usb_protocol_group.md#structusb__iface__desc__t)[UDC_DESC_STORAGE`](.build/docs/internals_undefined.md#group__udc__desc__group_1gae086959cec07a2e71ab069e25a51764f)` * `[`udc_get_interface_desc`](#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2)`(void)` {#group__udc__group_1gadb2a0f5ad1e834d4d7e7777f901d64d2}
-
- Returns a pointer on the current interface descriptor.
-
- #### Returns
- pointer on the current interface descriptor.
-
|