Device Management
[USB - LUFA/Drivers/USB/USB.h]


Defines

#define USB_DEVICE_OPT_LOWSPEED   (1 << 0)
#define USB_DEVICE_OPT_FULLSPEED   (0 << 0)

Functions

static void USB_Device_SendRemoteWakeup (void)
static bool USB_Device_IsRemoteWakeupSent (void)
static bool USB_Device_IsUSBSuspended (void)
uint16_t CALLBACK_USB_GetDescriptor (const uint16_t wValue, const uint8_t wIndex, void **const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3)

Variables

volatile bool USB_IsSuspended
uint8_t USB_ConfigurationNumber
bool USB_RemoteWakeupEnabled
bool USB_CurrentlySelfPowered

Detailed Description

USB Device mode related macros and enums. This module contains macros and enums which are used when the USB controller is initialized in device mode.

Define Documentation

#define USB_DEVICE_OPT_FULLSPEED   (0 << 0)

Mask for the Options parameter of the USB_Init() function. This indicates that the USB interface should be initialized in full speed (12Mb/s) mode.

#define USB_DEVICE_OPT_LOWSPEED   (1 << 0)

Mask for the Options parameter of the USB_Init() function. This indicates that the USB interface should be initialized in low speed (1.5Mb/s) mode.

Note:
Low Speed mode is not available on all USB AVR models.

Restrictions apply on the number, size and type of endpoints which can be used when running in low speed mode -- refer to the USB 2.0 standard.


Function Documentation

uint16_t CALLBACK_USB_GetDescriptor ( const uint16_t  wValue,
const uint8_t  wIndex,
void **const   DescriptorAddress 
)

Function to retrieve a given descriptor's size and memory location from the given descriptor type value, index and language ID. This function MUST be overridden in the user application (added with full, identical prototype and name so that the library can call it to retrieve descriptor data.

Parameters:
wValue The type of the descriptor to retrieve in the upper byte, and the index in the lower byte (when more than one descriptor of the given type exists, such as the case of string descriptors). The type may be one of the standard types defined in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
wIndex The language ID of the string to return if the wValue type indicates DTYPE_String, otherwise zero for standard descriptors, or as defined in a class-specific standards.
DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to the address of the descriptor.
Note:
By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute. If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D switch.
Returns:
Size in bytes of the descriptor if it exists, zero or NO_DESCRIPTOR otherwise

static bool USB_Device_IsRemoteWakeupSent ( void   )  [inline, static]

Indicates if a Remote Wakeup request is being sent to the host. This returns true if a remote wakeup is currently being sent, false otherwise.

This can be used in conjunction with the USB_Device_IsUSBSuspended() macro to determine if a sent RMWAKEUP request was accepted or rejected by the host.

Note:
This macro should only be used if the device has indicated to the host that it supports the Remote Wakeup feature in the device descriptors.
See also:
USB Descriptors for more information on the RMWAKEUP feature and device descriptors.
Returns:
Boolean true if no Remote Wakeup request is currently being sent, false otherwise

static bool USB_Device_IsUSBSuspended ( void   )  [inline, static]

Indicates if the device is currently suspended by the host. Whilst suspended, the device is to enter a low power state until resumed by the host. No USB traffic to or from the device can occur (except for Remote Wakeup requests) during suspension by the host.

Returns:
Boolean true if the USB communications have been suspended by the host, false otherwise.

static void USB_Device_SendRemoteWakeup ( void   )  [inline, static]

Sends a Remote Wakeup request to the host. This signals to the host that the device should be taken out of suspended mode, and communications should resume.

Typically, this is implemented so that HID devices (mice, keyboards, etc.) can wake up the host computer when the host has suspended all USB devices to enter a low power state.

Note:
This macro should only be used if the device has indicated to the host that it supports the Remote Wakeup feature in the device descriptors, and should only be issued if the host is currently allowing remote wakeup events from the device (i.e., the USB_RemoteWakeupEnabled flag is set).
See also:
USB Descriptors for more information on the RMWAKEUP feature and device descriptors.


Variable Documentation

Indicates the currently set configuration number of the device. USB devices may have several different configurations which the host can select between; this indicates the currently selected value, or 0 if no configuration has been selected.

If a device has only one single configuration, the token USE_SINGLE_DEVICE_CONFIGURATION may be defined in the project makefile and passed to the compiler using the -D switch. This optimize for a single configuration, saving a small amount of space in the resulting compiled binary.

Note:
This variable should be treated as read-only in the user application, and never manually changed in value.

Indicates if the device is currently being powered by its own power supply, rather than being powered by the host's USB supply. This flag should remain cleared if the device does not support self powered mode, as indicated in the device descriptors.

volatile bool USB_IsSuspended

Indicates if the USB interface is currently suspended by the host when in device mode. When suspended, the device should consume minimal power, and cannot communicate to the host. If Remote Wakeup is supported by the device and USB_RemoteWakeupEnabled is true, suspension can be terminated by the device by issuing a Remote Wakeup request.

Note:
This global is only present if the user application can be a USB device.

This variable should be treated as read-only in the user application, and never manually changed in value.

Indicates if the host is currently allowing the device to issue remote wakeup events. If this flag is cleared, the device should not issue remote wakeup events to the host.

Note:
This variable should be treated as read-only in the user application, and never manually changed in value.


Generated on Fri Jun 5 16:30:20 2009 for LUFA Library by  doxygen 1.5.7.1