SDAA062 September   2025 TMS320F28P559SJ-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Intelligent Cabin and IVI System
    2. 1.2 USB Interface Application in IVI
    3. 1.3 TMS320F28P55x Introduction
  5. 2USB Composite Device Enumeration and Data Report
    1. 2.1 USB Composite Device Enumeration
      1. 2.1.1 Descriptor Structure
      2. 2.1.2 Descriptor Types
        1. 2.1.2.1 Device Descriptor
        2. 2.1.2.2 Configuration Descriptor
        3. 2.1.2.3 Interface Descriptor
        4. 2.1.2.4 Endpoint Descriptor
        5. 2.1.2.5 String Descriptor
    2. 2.2 USB Composite Device HID Data Report
      1. 2.2.1 Data Report Item
      2. 2.2.2 HID Report Descriptor Structure
        1. 2.2.2.1 Main Item
        2. 2.2.2.2 Global Item
        3. 2.2.2.3 Local Item
    3. 2.3 Example of Building a HID Report Descriptor
  6. 3Software Realization
    1. 3.1 APIs for USB Composite Device Initialization
      1. 3.1.1 USBStackModeSet
      2. 3.1.2 USBDCDCCompositeInit
      3. 3.1.3 USBDHIDCustomCompositeInit
      4. 3.1.4 USBDCompositeInit
    2. 3.2 APIs for USB Composite Device CDC Data Report
      1. 3.2.1 USBBufferSpaceAvailable
      2. 3.2.2 USBBufferWrite
      3. 3.2.3 USBBufferRead
      4. 3.2.4 USBDCDCTxHandler
      5. 3.2.5 USBDCDCRxHandler
    3. 3.3 APIs for USB Composite Device HID Data Report
      1. 3.3.1 USBDHIDCustomTouchEvent
      2. 3.3.2 USBDHIDCustomReportKey
    4. 3.4 APIs for USB Composite Device Simulation
      1. 3.4.1 MultTouchSimHandler
      2. 3.4.2 KeySimHandler
    5. 3.5 APIs for USB Device Operate States Query
      1. 3.5.1 USBDCDCControlHandler
      2. 3.5.2 CustomHandler
  7. 4System Test
    1. 4.1 Test Setup
    2. 4.2 USB SCI CDC Device Function Test
    3. 4.3 USB Touch Screen HID Device Function Test
    4. 4.4 USB Button HID Device Function Test
  8. 5Summary
  9. 6References
  10. 7Appendix

Configuration Descriptor

A device can have more than one configuration. Each device configuration is assigned a number. The configuration descriptor serves two purposes:

  1. Informs the host interfaces quantity in the configuration. The composite device requires more than one interface in the configuration.
  2. Device power consumption of each configuration: If the device is capable of controlling the power consumption, the device offers more than one configuration. Each configuration advertises how much power is consumed if the configuration is activated.

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;
Table 2-2 Key Elements of an Interface Descriptor
Key Elements Description
bNuminterfaces Number of Interface Descriptor tables available
MaxPower Power load of this device if the host activates this configuration