AN220 USB D RIVER C USTOMIZATION Relevant Devices This application note applies to the following devices: CP2101/2/3/4/5, C8051F320/1/6/7, C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D, C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7, C8051T620/1/2/3 1. Introduction The information in this document and the associated software download is intended for use by developers creating USB products based on the CP210x USB-toUART Bridge Controller device family or the C8051F32x, C8051F34x, C8051F38x, C8051T32x, and C8051T62x USB MCU device families A Virtual COM Port Driver is available for the CP210x family and is included with the purchase of a CP210x Evaluation Kit. Additionally, drivers can be created using the USBXpress™ development kit for the CP210x, C8051F32x, C8051F34x, C8051F38x, C8051T32x, and C8051T62x device families. This document describes the steps necessary to customize the Windows® device driver installation using the Custom USB Driver Installation Wizard. 2. Customizing Driver Installations The driver installation is customizable by modifying certain sections of the hardware installation files (.inf). The strings contained in the .inf files affect what is displayed in the “Found New Hardware Wizard” dialogs, Device Manager, and the Registry. The changes to the VID and PID in the driver installation should match the VID and PID contained in the EPROM/FLASH of your product. See “AN144: CP21xx Device Customization Guide” for more information on changing the VID and PID for your product. When the device is connected to the PC for the first time, the drivers will be installed with little interaction from the user. Note: A customized installation does not contain certified drivers for Windows XP/2003/Vista/7. Certification must be performed by Microsoft for the new driver installation. An uncertified installation will not cause any other problems other than the warning message displayed by Windows XP/2003/Vista when installing uncertified drivers. Uncertified drivers cannot be installed in Windows 7 unless they are installed with a testing certificate or the Ignore Serial Signing option is enabled by pressing F8 on startup and selecting the corresponding option. To run the Custom USB Driver Installation Wizard, open CustomUSBDriverWizard.exe, which is included in the AN220SW.zip download. Figure 1 shows the first screen of the Custom USB Driver Installation Wizard. Choose the type of driver installation desired. For detailed instructions on creating a custom driver installation, see “4. Creating a Custom Driver”. This description goes through the process of customizing a CP210x driver. The process for creating a USBXpress™ driver is the same as this description, only select “USBXpress Driver” on the starting screen of the wizard. Note: Any changes to the Windows installation .inf files will require new Windows Hardware Quality Labs (WHQL) tests. 3. Using the Custom USB Driver Installation Wizard The Custom USB Driver Installation Wizard generates a custom driver installation for distribution to end-users. This customized installation consists of modified .inf files, optional installation support files, and driver files for Windows 2000/XP/Server 2003/Vista/Windows 7. The optional installation executable provided can be used to copy driver files and register a device on a PC before or after the device has been connected. It will also add an entry in the add/remove programs listing. Rev. 0.6 3/11 Figure 1. Driver Installation Selection Copyright © 2011 by Silicon Laboratories AN220 AN220 4. Creating a Custom Driver 4.2. Operating System Selection This section describes how to create a custom driver. To begin, choose the type of installation to customize: “Virtual COM Port Driver Installation” or “USBXpress Installation”. Differences between the two installations are noted, but a sample CP210x customization is shown in the figures. Next, determine if an installation executable should be generated (see “4.5. Installation String Options” and “4.8. Generation Directory” for more information on the generated installer), and click Next. The first step in the customization utility (shown in Figure 3) is to specify the operating system for which the custom driver is being generated. 4.1. Driver Certification Warning The first screen is the warning explaining that the generated driver installation will not be certified. (See Figure 2.) Click Next to begin customizing your driver installation. Figure 3. Operating System Selection Figure 2. Driver Certification Warning 2 Rev. 0.6 AN220 4.3. String and File Name Customization 4.4.2. Device List The next step in the customization utility (shown in Figure 4) is to specify your preferred strings and filenames. Each field is described in further detail below. The Device List allows multiple VID and PID combinations to be added to one driver. Current devices can be edited by double-clicking an entry. 4.3.1. Company Name (Long Name for .inf File Entries) The company name appears in the .inf file entries and has a maximum length of 255 characters. 4.3.2. Company Abbreviation (Short Name for .inf File Entries) The abbreviation appears in the .inf file entries and has a maximum length of 31 characters. 4.3.3. File Name for .inf This field allows for specification of a unique name for the .inf file. The maximum length of this string is eight characters. The generated file will be named xxxxxxxx.inf. Figure 5. VID and PID Customization To add a new entry, click the Add button. A new dialog box (shown in Figure 6) will appear with the following options. 4.4.3. Device Type This specifies which device is being customized. If the VCP driver for the CP2105 is being customized, two interface names will appear. Otherwise, only one interface name will appear. 4.4.4. VID Allows specification of a new vendor ID (VID). 4.4.5. PID Allows specification of a new product ID (PID). Figure 4. string and File Customization 4.4.6. Device Name 4.4. VID, PID, and Device Name Customiza- This string will be displayed in Device Manager under the Ports or USB tab. If the VCP driver for the CP2105 tion The next step in the customization utility (shown in Figure 5) allows multiple VID/PID combinations in one driver. This entry is also where the Device Name, which appears in Windows Device Manager, is specified. An example for Windows 7 is shown in Figure 7. is being customized, two interface names will appear. 4.4.1. General Device Installation Name This field is the general description of device installation. This will not appear in Device Manager, but will show up during installation if the user is prompted for a disk. 3 Rev. 0.6 AN220 4.5. Installation String Options The next step in the customization process is to specify options for the driver installer. The driver installer will allow for a device to be installed before or after a device has been connected to the PC. If this is run before a device is plugged in, drivers will already be registered for devices that belong to that installation. If a device is already plugged in, the installer will rescan the bus for any devices for that installation. This section covers adding the installer's strings and is shown in Figure 8. The driver installer and its corresponding setup.ini file are explained in further detail in “AN335: USB Driver Installation Utility”. 4.5.1. Product Name This is the string that identifies the product installation in the Add/Remove Programs listing. The string shows up as “<Product Name String> (Driver Removal)” for easy identification. Figure 6. Add VID/PID/Device Name to Installation 4.5.2. Name for Installation File This is will be the name of the installation executable and shows up as “<InstallName>.exe”. Figure 8. Installation Strings Figure 7. Windows 7 Device Manager Example If an installer is not being generated, then skip to “4.9. Option Verification”. 4 Rev. 0.6 AN220 4.6. Device Options 4.7. Installation Options The next step in the customization utility (shown in Figure 9) is to configure the serial enumeration and selective suspend options. Specific options for the GUI should now be specified. 4.7.1. Display GUI Window during Install This allows Windows to “enumerate” a device(s), such as serial mice or an external modem, connected to the CP210x . If your device always presents data to the PC (such as a GPS device), then disable this to prevent false serial enumerations. Check this option when using the generated Installer as a stand-alone application. The Installer will display several GUI windows during the installation process. Uncheck this option to run the Installer in Quiet Mode. When running in Quiet Mode, no GUI will be displayed. This is useful when using another application to launch this Installer. 4.6.2. Selective Suspend Support 4.7.2. Copy Files to Target Directory during Install: Enabling this feature will put the device to sleep if it has not been opened for a time longer than the specified Timeout Value. This is used to save power on the PC and is recommended unless your CP210x needs to be powered if a handle to the device is not opened. Check this option if a copy of the drivers will be needed on the hard drive. This is useful when installing the drivers from a CD. Uncheck this option if copies of the driver files are not needed on the hard drive. 4.6.1. Serial Enumeration Support 4.7.3. Target Directory Selects the hard drive location that will contain a copy of the driver files. The default location is C:\Program Files\Silabs\MCU\CP210x for the VCP Driver and C:\ProgramFiles\Silabs\MCU\USBXpress for the USBXpress driver. If the “Display GUI window during Installation” option is selected, this path can be changed during installation by clicking the Browse button. However, if the “Display GUI window during Installation” option is not selected, then the default directory is always used unless a directory is specified through the command line. This option is ignored if the “Copy Files to Directory during Setup” option is not selected. Note: The Target Directory must be different for each product released. 4.7.4. Display GUI Window during Uninstall Figure 9. Device Options Check this option when using the generated Uninstaller as a stand-alone application. The Uninstaller will display several GUI windows during the uninstall process. Uncheck this option if the Uninstaller will be launched by another application. The Uninstaller then runs in Quiet Mode. When running in Quiet Mode, no GUI will be displayed. 4.7.5. Remove Files from Target Directory during Uninstall Check this option if the files copied to the Target directory should be removed upon uninstallation. This option is ignored if the “Copy Files to Directory during Setup” option is not selected. 5 Rev. 0.6 AN220 4.9. Option Verification The final step in the customization utility is to review all of the selected options. If anything needs to be changed, the Back button can be used to go back to previous pages to change items. Once all options have been verified, press Finish to create the customized driver files. This step is shown in Figure 12. Figure 10. Installation Options 4.8. Generation Directory The next step in the customization utility is to specify where this custom driver’s installation files will be generated. The default directory for a VCP driver is C:\Silabs\MCU\CustomCP210xDriverInstall, and the default for a USBXpress Driver is C:\Silabs\MCU\CustomUSBXpressDriverInstall. However, a different directory can be selected or created. This step is shown in Figure 11. Note: This is not an actual installation of the drivers. This is simply a directory to output all installation files needed for the installation. These files can be added to a CD or OEM installation for distribution to the end-user. Figure 12. Option Verification 5. Customizing Driver Installations, Macintosh OS9 and OSX If the VID or PID is changed from the default factory settings, contact Silicon Laboratories to obtain drivers that incorporate the new values. Macintosh requires that the drivers be compiled with the values that will be used by the production CP210x device. Figure 11. Generation Directory 6 Rev. 0.6 AN220 DOCUMENT CHANGE LIST Revision 0.1 to Revision 0.2 Added CP2103 to Relevant Devices on page 1. Revision 0.2 to Revision 0.3 Updated figures and customization description to reflect version 3.4 and later of the Custom Driver Wizard. Removed USBXpress specific customization description. Version 3.4 and later contains the same process for customizing both VCP and USBXpress driver installations. Removed preinstaller explanations and added descriptions on how the new Driver Installer is used. Revision 0.3 to Revision 0.4 Updated diagrams and wording to reflect 4.1 and later versions of the Custom Driver Wizard. Updated to include documented support of C8051F34x devices. Updated to reflect Vista support. Revision 0.4 to Revision 0.5 Added support for CP2104 and CP2105. Added support for Windows 7. Updated all screen shots of the AN220 software. Updated explanations of AN220 software. Revision 0.5 to 0.6 Added support for C8051F38x, C8051T32x, and C8051T62x devices. Updated Figures 1 through 12. Rev. 0.6 7 AN220 CONTACT INFORMATION Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 Tel: 1+(512) 416-8500 Fax: 1+(512) 416-9669 Toll Free: 1+(877) 444-3032 Please visit the Silicon Labs Technical Support web page: https://www.silabs.com/support/pages/contacttechnicalsupport.aspx and register to submit a technical support request. The information in this document is believed to be accurate in all respects at the time of publication but is subject to change without notice. Silicon Laboratories assumes no responsibility for errors and omissions, and disclaims responsibility for any consequences resulting from the use of information included herein. Additionally, Silicon Laboratories assumes no responsibility for the functioning of undescribed features or parameters. Silicon Laboratories reserves the right to make changes without further notice. Silicon Laboratories makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Silicon Laboratories assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability, including without limitation consequential or incidental damages. Silicon Laboratories products are not designed, intended, or authorized for use in applications intended to support or sustain life, or for any other application in which the failure of the Silicon Laboratories product could create a situation where personal injury or death may occur. Should Buyer purchase or use Silicon Laboratories products for any such unintended or unauthorized application, Buyer shall indemnify and hold Silicon Laboratories harmless against all claims and damages. Silicon Laboratories and Silicon Labs are trademarks of Silicon Laboratories Inc. Other products or brandnames mentioned herein are trademarks or registered trademarks of their respective holders. 8 Rev. 0.6