SDAA280 March   2026 MSPM0G5187

 

  1.   1
  2.   Abstract
  3. 1USB Makes a Complex System Appear Simple
    1. 1.1 Why Has USB Been so Successful?
    2. 1.2 Why Does USB Look Simple?
  4. 2MSPM0 USB Silicon
    1. 2.1 How MSPM0 Devices are Documented
    2. 2.2 MSPM0 USB Module
  5. 3MSPM0 USB Hardware Design
    1. 3.1 Block Diagram
    2. 3.2 USB Mode of Operation
      1. 3.2.1 USB Device Mode: Bus Powered
      2. 3.2.2 USB Device Mode: Self-Powered
      3. 3.2.3 USB Host Mode Power Considerations
      4. 3.2.4 ESD Considerations
      5. 3.2.5 Layout Considerations
    3. 3.3 USB Clock Implementation
      1. 3.3.1 Selecting a Clock Source
      2. 3.3.2 Selecting a Clock Frequency
    4. 3.4 Example Implementation
  6. 4Software Overview
    1. 4.1 USB Stacks: Features
    2. 4.2 SysConfig Descriptor Tool
    3. 4.3 Selecting a Device Class
      1. 4.3.1 Example Process for Deciding on a USB Device Class
    4. 4.4 How to Select a Vendor ID (VID) and Product ID (PID)
      1. 4.4.1 Choosing and Obtaining VID and PID
      2. 4.4.2 Using VIDs and PIDs During Development
    5. 4.5 TinyUSB API Programmer's Guide and Examples
  7. 5Getting Started: Evaluating MSPM0 USB
  8. 6Summary
  9. 7References
  10. 8USB Glossary

SysConfig Descriptor Tool

TI provides simple configuration of descriptors using SysConfig. This tool allows for configuring many peripherals on MSPM0 devices, and for USB-enabled MSPM0 devices, there is a section titled TinyUSB which allows for configuration and generation of descriptors, rather than needing to code them manually.

 Screen Capture of the SysConfig Editor
          provided through Code Composer Studio Figure 4-1 Screen Capture of the SysConfig Editor provided through Code Composer Studio

This tool allows for the configuration of the following features:

  • Mode: Device/Host
  • VID value
  • BCD Value
  • Product and Manufacturer codes
  • Device class configuration
    • RX FIFO size (CDC ONLY)
    • TX FIFO size (CDC ONLY)
    • Endpoint transfer buffer size
    • Enabling speaker feedback, encoding, and decoding (UAC ONLY)
  • Default and Alternate Billboard Identifiers
  • Configure UART instance and pinmux selection
    • Clock Source
    • Clock Divider
    • Baud Rate
    • Word Length
    • Parity
    • Stop Bits
    • HW Flow control
    • DMA Configuration
    • Interrupt Configuration
  • Configure GPIO Dependencies
    • Direction
    • Initial value
    • Pinmux
    • Interrupts
    • Internal Resistors
  • Configure Systick dependencies
  • Configure USB Clock Source

Utilizing SysConfig to generate USB descriptors can be a big help, as writing descriptors can be tedious and cause additional mistakes. Failures resulting from incorrect descriptors tend to be obfuscated, and tracking down those mistakes can cause a significant increase in debugging time.

SysConfig generates reliable descriptors, on the first try, for any combination of CDC, HID, UAC, and MSC interfaces with significantly less effort.

Think of the tool as building the USB interfaces an application interacts with. This is the first step to develop an MSPM0 TinyUSB project.