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

Interface Descriptor

An interface descriptor describes the details of the function of the product. For example, if the device is a keyboard, the specified device class is Human Interface Device (HID) and the number of endpoints is two. See the USB Device Classes page for details on USB Device Class codes in usblib.h. Specific definitions can be found in the appropriate device class header files.

In the TI USB composite device project, the interface descriptor structure is defined in usblib.h, the instance and values are initialized by BuildCompositeDescriptor in usbcomp.c called by USBDCompositeInit function, the key elements of an interface descriptor are listed in Table 2-3.

typedef struct
{
 uint8_t bLength;
 uint8_t bDescriptorType;
 uint8_t bInterfaceNumber;
 uint8_t bAlternateSetting;
 uint8_t bNumEndpoints;
 uint8_t bInterfaceClass;
 uint8_t bInterfaceSubClass;
 uint8_t bInterfaceProtocol;
 uint8_t iInterface;
}
PACKED tInterfaceDescriptor;
Table 2-3 Key Elements of an Interface Descriptor
Key Elements Description
bNumEndpoints Number of endpoints in the interface
bInterfaceClass USB device class used to set transfer types for the endpoints