SDAA062 September 2025 TMS320F28P559SJ-Q1
A device can have more than one configuration. Each device configuration is assigned a number. The configuration descriptor serves two purposes:
Thus, multiple configuration can be claimed. Only one configuration can be active at any time. When a configuration is active, all of the interfaces and endpoints are available to the host. Devices that have multiple interfaces are referred to as composite devices. One physical product with one available USB connector appears to the host as two separate devices.
In the TI USB composite device project, the configuration descriptor structure is defined in usblib.h. The instance of the structure is defined in tCompositeInstance structure in usbdcomp.h called by the USBDCompositeInit function. The variable values are initialized by BuildCompositeDescriptor in usbcomp.c. The key elements of a configuration descriptor are listed in Table 2-2.
typedef struct
{
uint8_t bLength;
uint8_t bDescriptorType;
uint16_t wTotalLength;
uint8_t bNumInterfaces;
uint8_t bConfigurationValue;
uint8_t iConfiguration;
uint8_t bmAttributes;
uint8_t bMaxPower;
}
PACKED tConfigDescriptor;
| Key Elements | Description |
|---|---|
| bNuminterfaces | Number of Interface Descriptor tables available |
| MaxPower | Power load of this device if the host activates this configuration |