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

How to Choose a USB Device Class

Tradeoffs between the three device classes are shown in Table 5. (Plain text indicates advantages or neutral comments, and italic text indicates possible disadvantages.)

Table 5. Device Class Tradeoffs

Characteristic CDC
(Communications Device Class)
HID
(Human Interface Device Class)
MSC
(Mass Storage Class)
The interface generated on the host
  • Virtual COM port
  • A human interface device
  • Storage volume
Industry expertise for this interface
  • COM ports are common in the industry; widely-supported and well-understood
  • Unlike COM ports or storage volumes, HID interfaces are somewhat USB-specific, and less known in the industry
Storage volumes are common in the industry; widely-supported and well-understood
Installation on the host
  • Windows PCs must undergo a device installation process that requires end user interaction.(1)
  • Admin rights on this Windows PC are required
  • Despite the actual binary files already existing in Windows, the user must supply an INF file
  • Loads silently in most operating systems – simply begins working.
  • No driver files required
  • Loads silently in most operating systems – simply begins working.
  • No driver files required
How the end user interacts with it
  • An application on the host that interfaces with COM ports
  • The application might be custom, or any existing application that uses COM ports
  • A custom application on the host that interfaces with HID devices
  • The device mounts a storage volume onto the system; applications read and write files on the volume.
  • The application might be custom, or any application that reads or writes files
Driver certification needs
  • Unless the INF file is WHQL certified (signed), Windows will report that the driver is 'uncertified'. (2)
  • No 'uncertified' message is generated
  • No 'uncertified' message is generated
Code footprint and complexity
  • Small code footprint (4K to 6K)
  • Simple architecture
  • Small code footprint (4K to 6K)
  • Simple architecture
  • Larger code footprint (8K to 15K)
  • Requires a file system, increasing cost, size, and complexity.
Throughput
  • Fast (hundreds of KB/sec)
  • Uses bulk USB transfers.
  • Slower (64 KB/sec)
  • Uses interrupt USB transfers.
  • Fast (hundreds of KB/sec)
  • Uses bulk USB transfers.
Good for point-to-point communication between host and device
  • Yes
  • Yes
  • No
Good for bulk data transfer
  • Yes
  • No
  • Yes
This is the process that occurs the first time the device is attached to the host. In Windows, this process may begin with a "Found New Hardware" dialog box. The user must locate the INF file provided by the OEM.
WHQL certification refers to Microsoft's Windows Hardware Quality Labs. See http://www.microsoft.com/whdc/winlogo.

Sometimes the choice of device class is clear. In other cases, the application can be considered general purpose, giving the developer options. Although there are many ways to approach this decision, one way is shown in Figure 11.

example_process_for_deci_slaa457.gifFigure 11. Example Process for Deciding on a USB Device Class

For general-purpose use, HID-Datapipe should be considered, because of its combination of silent loading on the host (easy for the end user) and its small footprint and simplicity on the MSP430 MCUs, which speeds development. Coding of a corresponding host application is made easier with the MSP430 Java HID Demo App.