User`s guide
MSP430 USB Software Design
www.ti.com
5.2 How to Select a Vendor ID (VID) and Product ID (PID)
A common question about USB is how to select the VID and PID.
5.2.1 What are the VID and PID?
When a USB device is attached to a host, the host asks for its USB descriptors. These tell the host the
nature of the device and its capabilities.
Included in the descriptors are the 16-bit VID and PID values. The VID is associated with a particular
vendor/OEM, and a PID is associated with a product sold by that vendor.
For example, if vendor "Vendor1" sells their first USB product ("Product1"), they will obtain a VID, which
will now be associated with their company; and they need to then choose a PID to associate with
"Product1". When they later release "Product2", they'll use the same VID, but now should use a new PID.
It's up to the vendor to ensure they do not duplicate PIDs, which could results in conflicts in the field.
Therefore, a unique combination of a VID and PID allows a USB host to discern one USB product type
from another. If the VID and PID of "Product1" and "Product2" are the same, and a host in the field
encounters both products, conflicts might result from the host confusing the two products and loading an
inappropriate driver. As a rule of thumb, if devices have any differences in their USB descriptors, they
should have different PIDs.
5.2.2 How are They Chosen (or Obtained)?
VIDs are assigned by the USB Implementers Forum (USB-IF), which is the standards body that oversees
USB. The vendor can choose to obtain the VID by joining the USB-IF or to license a VID without joining.
At the time of writing, the former costs $4000 annually, and the latter costs $3500 for a two-year license.
(See http://www.usb.org/developers/vendor/ for more information.)
Alternatively, TI will license a PID to MSP430 customers for use with the MSP430 VID (0x2047) as part of
its VID-sharing program. The license is free, with the basic stipulation that it only be used with TI USB
devices. The program is intended to ensure that all MSP430 customers have easy access to a VID when
going to market. To obtain a copy of the license, look for the link for this program at
http://www.ti.com/msp430usb.
5.2.3 Using VIDs and PIDs During Development
Having a unique VID and PID pair on a USB device is important to prevent conflicts. A given USB host
stores information about the USB device's driver requirements after its first encounter with a given VID
and PID. It must be able to assume that any subsequent devices with the same VID and PID require the
exact same host driver setup. Therefore, once released to market, a product's VID and PID should not be
changed.
During development, however, the VID and PID might sometimes need to change as the developer arrives
at the final USB descriptor set. The developer must prevent conflicts on the host machine being used. This
can be done either by using a new PID value any time the USB descriptors change; or the original PID
can be used, but the device must be uninstalled off the system and re-installed. See the USB API
Programmer's Guide in the USB Developers Package, for more information.
6 Getting Started: Evaluating MSP430 USB
6.1 Software Development Environments
The primary development environments for TI MSP430 are TI's Code Composer Studio™ IDE (CCS) and
IAR Embedded Workbench
®
IDE (IAR). MSP430GCC is also supported, but note that the USB Developers
Package currently does not support it.
There are free code-size-limited versions of CCS (16KB) and IAR (8KB) available for download. The USB
API examples are provided in both formats, and both are fully supported.
It is generally a good idea to download the latest versions of CCS or IAR. The Release Notes HTML file,
inside the USB Developers Package, contains the specific versions required.
20
Starting a USB Design Using MSP430™ MCUs SLAA457A–September 2013–Revised May 2014
Submit Documentation Feedback
Copyright © 2013–2014, Texas Instruments Incorporated










