AN721
CP21
XX
D
EVICE
C
U S T O MI Z A T I O N
G
U I D E
Relevant Devices
This application note applies to the following devices:
CP2101, CP2102, CP2103, CP2104, CP2105, CP2108, CP2110, CP2112, CP2114, CP2130
1. Introduction
This document explains the steps required to customize a fixed function USB device. It is intended for developers
creating products based on the CP210x/CP211x/CP2130 USB Bridge Controllers. It contains information about
obtaining a Vendor ID (VID) and Product ID (PID) for a CP210x/CP211x/CP2130 product and describes the steps
necessary for customizing the device descriptors. Refer to
www.silabs.com/interface
for the latest revisions of this
document and other application notes related to the CP210x/CP211x/CP2130 device families.
1.1. USB Logos and Certification Testing
USB is a widely used peripheral. The USB Implementers Forum, Inc. has introduced trademark-protected logos for
use with qualified USB products. To use the logo, USB products are required to meet the standards of the USB
Implementers Forum. For a product to have compliance and/or certification implies that the USB product has been
tested by the USB-IF to meet the specification. Each type of USB product requires specific testing to be listed on
the Integrators List. This is important not only to OEMs but to consumers because products tested and certified by
the USB-IF are assured to work together. Compliance testing exists to help manufacturers measure how well their
products match the respective USB specification. If a product has passed USB-IF compliance testing, the company
can use the USB logo on the products.
1.2. USB Vendor IDs and Product IDs
Each device on a USB bus must have a unique Vendor ID (VID), Product ID (PID), and serial number combination.
This ID system uniquely identifies the different devices on the bus to avoid conflicts. The PC uses the VID/PID to
find the drivers (if any) to be used for the USB device. The VID/PID must be unique in that each USB device with
the same VID/PID will use the same driver, and it is strongly recommended to make the PID unique to a particular
design. The USB devices of a given VID/PID combination can be serialized, which allows the operating system to
track not only a particular model, but also a specific board of that model.
Vendor IDs are owned by the vendor company and assigned by the USB Implementers Forum (USB-IF) only.
Details about obtaining a unique VID can be found at
www.usb.org/developers/vendor.
To obtain the right to license the USB-IF logo, register the product's VID and PID with USB-IF and submit the
product to the USB-IF Compliance Program. USB-IF Compliance Program details are available at
www.usb.org/developers/compliance.
Once the product is certified, it can be added to the USB-IF Integrators List,
and the “Certified USB” logo can be used on the product. The default Silicon Labs VID is 0x10C4 and the default
Silicon Labs PID is dependent on the device. To obtain a unique PID for your CP210x/CP211x/CP2130-based
product, visit
http://www.silabs.com/RequestPID.
Note that customization of the USB strings is optional, but is strongly
recommended. A unique VID/PID combination will prevent the driver from conflicting with any other USB driver.
Rev. 1.2 10/13
Copyright © 2013 by Silicon Laboratories
AN721
AN721
2. Basic Device Customization
The steps to customize the CP210x family of devices is slightly different than customizing the CP211x and CP2130
devices. The CP210x devices require a driver, but the CP211x devices do not because they are of the HID class,
which is natively supported by most operating systems. The next two sections describe the recommended steps for
customizing the device based on the family, either the CP210x, CP211x, or CP2130.
2.1. Summary of Steps for Customizing the CP210x Non-HID USB Devices
The CP210x family of devices provides communication from USB to UART. This requires a driver to interface to the
device. There are two types of drivers provided. One is the Virtual COM port (VCP) driver which allows the device
to appear to the PC’s application software as a COM port. This driver is always used first to connect to the Device
Customization Software program to change the PID since by default this driver has the same VID and PID as what
is programmed in the default devices. After the Device Customization Software program is used to change the PID,
the driver must match the new values that have been loaded in the device from the Device Customization
Software. If the user wants to communicate to the device via a high level application program, a USBXpress driver
can be used which provides this functionality. This driver must be downloaded and installed after using the Device
Customization Software. Then the USBXpress driver or VCP driver (which ever one will be used) should be
updated to make sure the driver matches the VID and PID in the device. A PC cannot have both the VCP and
USBXpress drivers loaded with the same VID and PID, as this would cause USB device identification conflicts. In
the end, only one driver can be used, either the VCP or the USBXpress.
There are VCP and USBXpress drivers for various operating systems, which are all listed on the website at
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
for the VCP driver and at
www.silabs.com/usbxpress
for the USBXpress driver. The process described below must be followed each time a
new operating system must be supported. If the driver has been certified for Windows 7 32-bit and then it is
necessary to support Windows 7 64-bit, then the driver must be recertified. The Microsoft certification process must
be initiated again, and the reseller fee must be paid to Microsoft for the 64-bit version of the driver. Microsoft
requires this certification process which involves Windows hardware quality labs testing (WHQL). It certifies that
the hardware or software has been tested by Microsoft to ensure compatibility. Device drivers that pass the WHQL
tests are given a digitally signed certification file, which prevents Windows from displaying a warning message that
the driver has not been certified by Microsoft.
Figure 1 shows the default VID and PID values for the device and drivers. To establish communication with the
driver, the VID and PID of the device must match the driver. Notice that the default CP210x device VID and PID
match the default VCP driver VID and PID numbers.
2
Rev. 1.2
AN721
Stock VCP Driver
CP2101-CP2104: VID: 0x10C4 PID: 0xEA60
CP2105:
VID: 0x10C4 PID: 0xEA70
CP2108:
VID: 0x10C4 PID: 0xEA71
Stock USBXPress Driver
CP2101-CP2104: VID: 0x10C4 PID: 0xEA61
Default Firmware in Device
CP2101-CP2104: VID: 0x10C4 PID: 0xEA60
CP2105:
VID: 0x10C4 PID: 0xEA70
CP2108:
VID: 0x10C4 PID: 0xEA71
Figure 1. Default VID and PID Values for Driver vs Firmware
The steps to customize the CP210x USB devices are as follows:
1. Request a unique PID from Silicon Labs for your new product design:
http://www.silabs.com/RequestPID,
or obtain a VID/PID from usb.org.
2. Download the VCP driver appropriate for your operating system here:
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx.
The stock VCP driver from the
website should match the default VID and PID in the CP210x. The VCP driver must be installed with
matching VID and PID to communicate to the device.
3. Run the Device Customization Software program described in the next sections to change the descriptors
in the device.
4.
(USBXpress Users Only):
If the desired driver is USBXpress, it can be download here:
www.silabs.com/usbxpress.
This driver allows direct access using Silicon Labs API commands to control
the device. When this driver is initially downloaded it will not have the matching VID/PID of the CP210x
devices. See Figure 1 for the default driver and device VID/PID.
5. Use the USB Driver Customization Wizard and instructions in AN220SW and AN220 “USB Driver
Customization”
https://www.silabs.com/Support%20Documents/TechnicalDocs/an220.pdf
to update the
driver for the new PID and any other descriptors that have been changed from Step 3. Be certain to use the
version of AN220 software which corresponds to the correct driver when generating the modified drivers.
Take care to verify that these customized drivers are completely correct, as none of the files in the driver
package can change in any way once the driver has been certified. If you do not have the correct version of
the AN220 software, please contact our support team
www.silabs.com/contactsupport.
Update either the
VCP driver (COM port) or USBXpress driver (API commands) to match the device. The USB Driver
Customization Wizard customizes the driver by changing the hardware installation files (.inf) in the driver
package. The strings contained in the .inf files affect what is displayed in the “Found New Hardware
Wizard” dialogs, Device Manager and the Registry. Any changes to the Windows® installation .inf files will
require new Windows Hardware Quality Labs (WHQL) tests.
Rev. 1.2
3
AN721
6.
(Microsoft Windows Only):
The customized driver is eligible for WHQL re-seller submissions to certify the
driver. These submissions do not have the high cost and testing requirements of an original driver
submission. To certify a customized VCP or USBXpress driver, register at the WinQual site
https://sysdev.microsoft.com
to obtain a WinQual account with your company. Internet Explorer is the only
web browser that can be used with the WHQL website. A Verisign ID is needed to register an account
(instructions for obtaining one are available at Microsoft's website:
http://msdn.microsoft.com/en-us/library/windows/hardware/hh801887?ppud=4.
The correct Verisign ID is
the CodeSigner Standard
http://www.verisign.com/code-signing/microsoft-authenticode/index.html?sl=header.
7.
(Microsoft Windows Only):
After obtaining a WinQual account, notify the Silicon Labs support team
www.silabs.com/contactsupport
to be added as a registered Reseller. Provide the driver type (VCP or
USBXpress) and version (e.g., v6.5) when requesting Reseller status.
8.
(Microsoft Windows Only):
Silicon Labs will add your company as a registered reseller. Your company
must complete the provided directions to finish the recertification process.
Note:
For further detailed instructions on Microsoft’s submission process for recertification for a customized driver please view
the document attached to the KnowledgeBase article called “How to Recertify a Customized Driver Package.pdf” located
here:
http://cp-siliconlabs.kb.net/article.aspx?article=89180&p=4120.
2.2. Summary of Steps for Customizing the CP211x HID USB Devices
The CP211x family does not require a driver because it is automatically recognized as part of the HID class, which
simplifies the process. Most operating systems include native drivers. The CP211x will not fit a standard HID
device type such as a keyboard or mouse. Any CP211x PC application will need to use the specific CP211x HID
specification to communicate with it. This low-level HID specification is documented and provided by Silicon Labs
in the form of a DLL.
The following are the steps to follow to customize the CP211x HID USB devices to ensure a unique VID/PID
combination:
1. Request a unique PID from Silicon Labs for a new design:
http://www.silabs.com/RequestPID.
2. Use the Device Customization Software program described in Section 3 below to change the descriptors in
the firmware of the device.
2.3. Summary of Steps for Customizing CP2130 USB-to-SPI Devices
The CP2130 family of devices provides communication from USB to SPI. This requires a driver to interface to the
device. In most cases, a generic USB driver, such a Microsoft's WinUSB or the open source libUSB driver, can be
used with the CP2130. All that is required is to generate a proper driver INF file that associates a CP2130 with a
specific USB VID/PID with the generic USB driver. The CP2130 evaluation kit ships with a WinUSB driver and INF
file that includes support for the default CP2130 VID/PID. In order to customize the CP2130, the user must install
this stock driver in order for the CP21xx Customization Software to communicate with the device. Once the
CP2130 has been customized and the VID and/or PID have changed, the user must customize the driver to
recognize the new VID/PID.
The CP2130 data sheet lists WinUSB drivers for various Windows operating systems. The steps described below
must be followed each time a new operating system is to be supported. If the driver has been certified for Windows
7 32-bit and it becomes necessary to support Windows 7 64-bit, then the driver must be recertified. The Microsoft
certification process must be initiated again, and the reseller fee must be paid to Microsoft for the 64-bit version of
the driver. Microsoft requires this certification process, which involves Windows hardware quality labs testing
(WHQL). It certifies that the hardware or software has been tested by Microsoft to ensure compatibility. Device
drivers that pass the WHQL tests are given a digitally-signed certification file, which prevents Windows from
displaying a warning message that the driver has not been certified by Microsoft.
Figure 2 shows the default VID and PID values for the device and drivers. To establish communication with the
driver, the VID and PID of the device must match the driver. Notice that the default CP2130 device VID and PID
match the default WinUSB driver VID and PID numbers.
4
Rev. 1.2
AN721
Stock WinUSB Driver
CP2130:
VID: 0x10C4 PID: 0x87A0
Default Firmware in Device
CP2130:
VID: 0x10C4 PID: 0x87A0
Figure 2. Default VID and PID Values for Driver vs. Firmware
Perform the following steps to customize the CP2130 USB devices:
1. Request a unique PID from Silicon Labs for your new product design:
http://www.silabs.com/RequestPID,
or obtain a VID/PID from usb.org
2. Download the WinUSB driver appropriate for your operating system from here:
http://www.silabs.com/CP2130EK
The stock WinUSB driver from the web site should match the default VID and PID in the CP2130. The
driver must be installed with matching VID and PID to communicate to the device.
3. Run the Device Customization Software program described in the following sections to change the
descriptors in the device.
4. Modify a copy of the stock WinUSB driver hardware installation file (.inf) for the new PID and any other
descriptors that have been changed from Step 3. Take care to verify that these customized drivers are
completely correct, as none of the files in the driver package can change in any way once the driver has
been certified. The strings contained in the .inf file affect what is displayed in the “Found New Hardware
Wizard” dialogs, Device Manager, and the Registry. Any changes to the Windows
®
installation .inf files will
require new Windows Hardware Quality Labs (WHQL) tests.
5. (Microsoft Windows Only): The customized driver is eligible for WHQL re-seller submissions to certify the
driver. These submissions do not have the high cost and testing requirements of an original driver
submission. To certify a customized WinUSB driver, register at the WinQual site:
(https://sysdev.microsoft.com) to obtain a WinQual account with your company. Internet Explorer is the only
web browser that can be used with the WHQL web site. A Verisign ID is needed to register an account
(instructions for obtaining one are available at the Microsoft web site:
http://msdn.microsoft.com/en-us/library/windows/hardware/hh801887?ppud=4
The correct Verisign ID is the CodeSigner Standard:
http://www.verisign.com/code-signing/microsoft-authenticode/index.html?sl=header.
6. (Microsoft Windows Only): After obtaining a WinQual account, notify the Silicon Labs support team
(www.silabs.com/contactsupport) (click on “Open a support request”) to be added as a registered Reseller.
Provide the driver type (CP2130 WinUSB) and version (e.g., 1.0) when requesting Reseller status.
7. (Microsoft Windows Only): Silicon Labs will add your company as a registered reseller. Your company must
complete the provided directions to finish the recertification process.
Note:
For further detailed instructions on Microsoft’s submission process for recertification for a customized driver, please view
the document attached to the KnowledgeBase article called “How to Recertify a Customized Driver Package.pdf” at:
http://cp-siliconlabs.kb.net/article.aspx?article=89180&p=4120.
Rev. 1.2
5