SLAA457B September   2013  – October 2018 MSP430F5500 , MSP430F5501 , MSP430F5502 , MSP430F5503 , MSP430F5504 , MSP430F5505 , MSP430F5506 , MSP430F5507 , MSP430F5508 , MSP430F5509 , MSP430F5510 , MSP430F5513 , MSP430F5514 , MSP430F5515 , MSP430F5517 , MSP430F5519 , MSP430F5521 , MSP430F5522 , MSP430F5524 , MSP430F5525 , MSP430F5526 , MSP430F5527 , MSP430F5528 , MSP430F5529 , MSP430F5630 , MSP430F5631 , MSP430F5632 , MSP430F5633 , MSP430F5634 , MSP430F5635 , MSP430F5636 , MSP430F5637 , MSP430F5638 , MSP430F5658 , MSP430F5659 , MSP430F6630 , MSP430F6631 , MSP430F6632 , MSP430F6633 , MSP430F6634 , MSP430F6635 , MSP430F6636 , MSP430F6637 , MSP430F6638 , MSP430F6658 , MSP430F6659 , MSP430FG6425 , MSP430FG6426 , MSP430FG6625 , MSP430FG6626

 

  1.   Starting a USB Design Using MSP430™ MCUs
    1.     Trademarks
    2. 1 USB and the Art of Making Something Complex Look Simple
      1. 1.1 What Has Made USB So Successful?
      2. 1.2 But It Looks So Simple!
      3. 1.3 TI's Approach for MSP430 USB
    3. 2 MSP430 USB Silicon
      1. 2.1 How MSP430 Devices are Documented
      2. 2.2 USB-Equipped MSP430 Derivatives
      3. 2.3 MSP430 USB Module
      4. 2.4 USB Certification of the Silicon
    4. 3 Software
      1. 3.1 USB Developers Package: Overview
      2. 3.2 USB API Stacks: Features
      3. 3.3 MSP430 USB Descriptor Tool
      4. 3.4 Host Software, and the Java HID Demo App
      5. 3.5 USB API Programmer's Guide and Examples Guide
      6. 3.6 MSP430 USB Field Firmware Upgrade Tools
    5. 4 MSP430 USB Hardware Design
      1. 4.1 TI Reference Design for USB Interface
      2. 4.2 Selecting a Power Configuration
      3. 4.3 Selecting a Clock Configuration
        1. 4.3.1 Choosing a Source
        2. 4.3.2 Choosing a Frequency
      4. 4.4 Other Reference Design Commentary
    6. 5 MSP430 USB Software Design
      1. 5.1 How to Choose a USB Device Class
      2. 5.2 How to Select a Vendor ID (VID) and Product ID (PID)
        1. 5.2.1 What are the VID and PID?
        2. 5.2.2 How are They Chosen (or Obtained)?
        3. 5.2.3 Using VIDs and PIDs During Development
    7. 6 Getting Started: Evaluating MSP430 USB
      1. 6.1 Software Development Environments
      2. 6.2 F5529 LaunchPad Development Kit
      3. 6.3 MSP430F5529 USB Experimenter's Board
      4. 6.4 FET Target Boards
    8. 7 More Information
  2.   A USB Glossary
  3.   Revision History

But It Looks So Simple!

The elegance of USB is that users see none of this complexity – it simply does what they need it to.

But developers can have more trouble avoiding this complexity. Compared to UART, SPI, or I2C, layers of protocol are required to give USB its unique capabilities. This means that sending data over USB takes more effort than simply writing a byte to an output buffer. On-chip USB modules offset some of this complexity, but they cannot do all of this; layers of software need to be employed.

Good USB software can insulate the application developer from many of these complexities. But like icebergs, the tips of these concerns can still be seen by the application. How should the device respond when attached or not attached to a host? How should software be written to ensure it keeps flowing even when the host or bus is busy or unreliable? The simplest USB applications might be able to ignore these concerns, but professional applications often cannot.

An industry of middleware and consultants is available to help developers through this process. But, many developers still rely on silicon vendors and the community to provide both software and support.