Question: I want to use CP210x devices with Direct Access Driver (a.k.a: USBXpress Driver) so I download Direct Access Driver from Silicon Labs website, install it, then I change VID/PID of the CP210x devices to 0x10c4/0xEA61. However, I only see one USBXpress device interface for CP2105 or CP2108. Are CP2105/2108 not supported?
The CP2108 comes into three revisions: B01,B02 and B03. The top marking lines are defined as below:
Even there are many information available, the top marking does not indicate anything about the part revision. To determine the revision number we can do by two ways using software.
Simplicity Studio:
If you are using a CP2108-EB, you can use Simplicity Studio Debug Adapter to read the revision of the chip. Plug the device into your computer, open Simplicity Studio, and the Debug Adapter window should contain the chip revision.
CP210xManufacturing.dll with CP210x_GetFirmwareVersion()
Another way to get firmware version is to use CP210x_GetFirmwareVersion() function from the CP210xManufacturing.dll. The function will return a firmware version in a major, minor and a build number. The following table shows the firmware version and the corresponding revision number.
Note: the firmware in the following table is in decimal
Firmware version (Major.Minor.Build)
Revision
25.0.0
B03
23.0.0
B02
20.0.0
B01
More information about CP210xManufacturing.dll can be found in AN978.
The CP2102N comes in two revisions: A01 and A02. There is no way to determine the entire revision number by looking at the top marking of the chip.
The top marking is divided into three lines, and each line is defined as below:
1. Part Number
2. Manufacture Trace Code
3. Date Code and Letter Revision
Some people may see "A01" in the second line of the top marking, but this is actually part of the trace code and does not indicate anything about the part revision. The only way to determine the revision number is via software. There are two says to do this in software:
1. Simplicity Studio:
If you are using a CP2102N-EB, you can use Simplicity Studio to read the OPN of the chip. Some CP2102N OPNs contain the revision number in it. Plug the device into your computer, open Simplicity Studio, and the Debug Adapters window should contain the OPN.
If you are using a custom board or the revision number doesn't show up in Simplicity Studio, you can use the CP210x_GetFirmwareVersion() from the CP210xManufacturing.dll. The CP210x_GetFirmwareVersion() function returns a major, minor, and build number. The following shows the corresponding firmware version number and the revision number.
Firmware Version (Major.Minor.Build)
Revision
1.0.2
A01
1.0.4
A01
1.0.8
A02
More information about the Manufacturing.dll can be found in AN978.
The MAX13235E transceiver on the CP2102N-EK will not transmit the first bits of data if left idle for more than 30s.
The MAX13235E transceiver on TXD enters AutoShutdown Plus mode after 30s of inactivity on the data bus. Exiting the mode requires a transition edge. The transceiver takes ~40uS to return to normal operation. This will cause incorrect data on the RS-232 side of the transceiver.
To workaround this issue, place the MAX13235E in always-on mode by moving the 1KOhm resistor at R13 to R23.
Problem: A CP2130 device becomes unresponsive after issuing a control command transfer (i.e. Set_GPIO_mode_and_level or other control functions).
Cause: Any active SPI transfer must complete on the SPI bus before the host starts a USB Configuration and Control Commands transfer. This includes reading or writing GPIOs or checking status. USB bus traffic will determine when a transfer reaches the CP2130. Sufficient time must be inserted after SPI transfers for USB bus traffic and the SPI bus transfer itself, before starting any USB Configuration and Control Command transfers.
Since timing for active SPI transfers are not guaranteed, there is no specific min or max wait time required before submitting a control command.
Q1) I have obtained a unique VID/PID combination for my VCP or USBXpress (Direct Access) driver and have contacted Silicon Labs to obtain reseller status, however the package that is shipped to me via Microsoft Dashboard has the Silicon Labs default VID/PID. How do I recertify a driver with my VID/PID combination?
Q2) Changing the VID/PID of the default Silicon Labs driver invalidates the driver signature. I understand that that means I must recertify the driver. Does that also mean that I must rigorously retest the driver prior to recertification?
1. Purchase the appropriate certificate from a certificate vendor.
2. Contact Silicon Labs technical support (http://www.silabs.com/support) for reseller status. Please provide the driver used (VCP or USBXpress), driver version, and the WHQL registered company name.
3. Add your certificate to the Microsoft Hardware Dashboard.
4. Add the certificate to the certificate store on your computer.
5. Download a file to sign, sign it, and upload the signed file.
6. Download the DUA shell (a .hlkx file) from the driver shipped to you.
7. Download the signed files. Modify the .inf file as desired. (Or upload the modified .inf output of AN220: USB Driver Customization Software. This is how you can create a customized driver using your VID/PID combination.)
8. Download and install the latest version of HLK Studio. Open HLK Studio.
9. Change to the package tab. Right click on the driver and choose [Replace Driver]. Choose a folder with the signed driver files and your modified .inf file.
10. Click [Create Package].
11. Sign from the certificate store on your computer. Save the .hlkx file.
12. In the Microsoft dashboard, click [Upload New] and choose your new .hlkx file.
A2) Many driver customizations, including changing the VID/PID, product and manufacturer strings, and other minor changes require modification of the .inf file only and do not affect the binary executable or functional portion of the driver. In such cases the resigning process is eligible for re-certification as Driver Update Acceptable (DUA), which is a streamlined re-certification process that does not require the detailed testing that Silicon Labs must undergo for the initial submission of the original driver that Silicon Labs ships to customers via the Microsoft dashboard. Please follow the steps outlined above and in the linked documentation and customization utilities to complete the process.
Do I need to install any driver for CP2615 on Windows?
Answer
CP2615 USB digital audio bridge is a composite USB device that provides three USB interfaces:
1. USB Audio Class 1.0 to I2S digital audio bridge
2. USB HID Class consumer control device for volume and mute synchronization
3. Vendor specific USB serial data bridge using CP2615 I/O Protocol
The USB HID and digital audio interfaces are standard class implementations and natively supported by most operating systems, no custom driver needed.
The CP2615 serial I/O USB interface uses bulk transfers, and WinUSB driver is required for Windows platform. However, some user may observe one of CP2615 interface cannot enumerate successfully on Windows 7 which the WinUSB driver has not been installed properly. In this situation, you need to install the WinUSB driver by yourself if you want to use this interface. For more information on how to install the WinUSB driver, please see here.
Below is the CP2615 device viewing in Device Manager on Windows 7 with WinUSB driver installation.
Interface Knowledge Base
USBXpress driver for CP2105 and CP2108 devices
Question: I want to use CP210x devices with Direct Access Driver (a.k.a: USBXpress Driver) so I download Direct Access Driver from Silicon Labs website, install it, then I change VID/PID of the CP210x devices to 0x10c4/0xEA61. However, I only see one USBXpress device interface for CP2105 or CP2108. Are CP2105/2108 not supported?
Answer: CP2105 and CP2108 device can be used with the USBXpress driver, but these devices must be added by customizing the driver using AN220: USB Driver Customization Software. The AN220SW can be found in this link: https://www.silabs.com/documents/public/example-code/AN220SW.zip
How to determine CP2108 revision (B01, B02 or B03)
The CP2108 comes into three revisions: B01,B02 and B03. The top marking lines are defined as below:
Even there are many information available, the top marking does not indicate anything about the part revision. To determine the revision number we can do by two ways using software.
Simplicity Studio:
If you are using a CP2108-EB, you can use Simplicity Studio Debug Adapter to read the revision of the chip. Plug the device into your computer, open Simplicity Studio, and the Debug Adapter window should contain the chip revision.
CP210xManufacturing.dll with CP210x_GetFirmwareVersion()
Another way to get firmware version is to use CP210x_GetFirmwareVersion() function from the CP210xManufacturing.dll. The function will return a firmware version in a major, minor and a build number. The following table shows the firmware version and the corresponding revision number.
Note: the firmware in the following table is in decimal
More information about CP210xManufacturing.dll can be found in AN978.
How to Determine CP2102N Revision (A01 vs. A02)
The CP2102N comes in two revisions: A01 and A02. There is no way to determine the entire revision number by looking at the top marking of the chip.
The top marking is divided into three lines, and each line is defined as below:
1. Part Number
2. Manufacture Trace Code
3. Date Code and Letter Revision
Some people may see "A01" in the second line of the top marking, but this is actually part of the trace code and does not indicate anything about the part revision. The only way to determine the revision number is via software. There are two says to do this in software:
1. Simplicity Studio:
If you are using a CP2102N-EB, you can use Simplicity Studio to read the OPN of the chip. Some CP2102N OPNs contain the revision number in it. Plug the device into your computer, open Simplicity Studio, and the Debug Adapters window should contain the OPN.
2. CP210xManufacturing.dll CP210x_GetFirmwareVersion()
If you are using a custom board or the revision number doesn't show up in Simplicity Studio, you can use the CP210x_GetFirmwareVersion() from the CP210xManufacturing.dll. The CP210x_GetFirmwareVersion() function returns a major, minor, and build number. The following shows the corresponding firmware version number and the revision number.
More information about the Manufacturing.dll can be found in AN978.
CP2102N-EK MAX13235E transceiver AUTOSHUTDOWN feature causes transmission error
The MAX13235E transceiver on the CP2102N-EK will not transmit the first bits of data if left idle for more than 30s.
The MAX13235E transceiver on TXD enters AutoShutdown Plus mode after 30s of inactivity on the data bus. Exiting the mode requires a transition edge. The transceiver takes ~40uS to return to normal operation. This will cause incorrect data on the RS-232 side of the transceiver.
To workaround this issue, place the MAX13235E in always-on mode by moving the 1KOhm resistor at R13 to R23.
SPI transfer corruption caused by Configuration and Control Command transfers on the CP2130
Problem: A CP2130 device becomes unresponsive after issuing a control command transfer (i.e. Set_GPIO_mode_and_level or other control functions).
Cause: Any active SPI transfer must complete on the SPI bus before the host starts a USB Configuration and Control Commands transfer. This includes reading or writing GPIOs or checking status. USB bus traffic will determine when a transfer reaches the CP2130. Sufficient time must be inserted after SPI transfers for USB bus traffic and the SPI bus transfer itself, before starting any USB Configuration and Control Command transfers.
Since timing for active SPI transfers are not guaranteed, there is no specific min or max wait time required before submitting a control command.
Reselling a Customized VCP or USBXpress (Direct Access) Driver via Microsoft Dashboard
Questions:
Q1) I have obtained a unique VID/PID combination for my VCP or USBXpress (Direct Access) driver and have contacted Silicon Labs to obtain reseller status, however the package that is shipped to me via Microsoft Dashboard has the Silicon Labs default VID/PID. How do I recertify a driver with my VID/PID combination?
Q2) Changing the VID/PID of the default Silicon Labs driver invalidates the driver signature. I understand that that means I must recertify the driver. Does that also mean that I must rigorously retest the driver prior to recertification?
Answers:
A1) In the case that you have your own VID/PID combination already, you must customize both your devices and your driver with this VID/PID combination according to AN721: CP210x/CP211x Device Customization Guide and AN220: USB Driver Customization, as well as complete the following steps:
1. Purchase the appropriate certificate from a certificate vendor.
2. Contact Silicon Labs technical support (http://www.silabs.com/support) for reseller status. Please provide the driver used (VCP or USBXpress), driver version, and the WHQL registered company name.
3. Add your certificate to the Microsoft Hardware Dashboard.
4. Add the certificate to the certificate store on your computer.
5. Download a file to sign, sign it, and upload the signed file.
6. Download the DUA shell (a .hlkx file) from the driver shipped to you.
7. Download the signed files. Modify the .inf file as desired. (Or upload the modified .inf output of AN220: USB Driver Customization Software. This is how you can create a customized driver using your VID/PID combination.)
8. Download and install the latest version of HLK Studio. Open HLK Studio.
9. Change to the package tab. Right click on the driver and choose [Replace Driver]. Choose a folder with the signed driver files and your modified .inf file.
10. Click [Create Package].
11. Sign from the certificate store on your computer. Save the .hlkx file.
12. In the Microsoft dashboard, click [Upload New] and choose your new .hlkx file.
You can find greater detail on this list of steps in AN807: Recertifying a Customized Windows HCK Driver Package, including illustrative screenshots.
A2) Many driver customizations, including changing the VID/PID, product and manufacturer strings, and other minor changes require modification of the .inf file only and do not affect the binary executable or functional portion of the driver. In such cases the resigning process is eligible for re-certification as Driver Update Acceptable (DUA), which is a streamlined re-certification process that does not require the detailed testing that Silicon Labs must undergo for the initial submission of the original driver that Silicon Labs ships to customers via the Microsoft dashboard. Please follow the steps outlined above and in the linked documentation and customization utilities to complete the process.
CP210x驱动程序v10.1.1和v6.7.5版本之间的区别
首先,CP210x驱动程序v10.1.1是Windows Universal驱动程序。 有关此驱动程序的更多信息,请参阅此KBA - https://www.silabs.com/community/interface/knowledge-base.entry.html/2017/12/27/vcp_driver_-_windows-Ulur.
CP210x驱动程序v6.7.5目前是“传统”驱动程序,可以在Windows 7, 8和10上使用。两个版本的驱动程序之间的差异体现在以下方式:
1. 驱动程序软件的差异
这写差异可以通过release notes文档获取,可以从此链接获取 - https://www.silabs.com/documents/public/release-notes/CP210x_Universal_Windows_Driver_ReleaseNotes.txt
2.功能差异,即为什么有v10.1.1?
驱动程序版本v6.7.5适用于Windows 7及更高版本的“桌面”系统,即Windows 7, 8, 8.1和10.请注意,这些驱动程序仅适用于“桌面”系统,即PC和服务器。 Windows v10.1.1是一个通用的Windows驱动程序。 微软在Windows 10中引入了“Universal”。“Universal”表示支持Universal的Windows桌面系统,嵌入式系统和移动操作系统等版本,即Windows 10。有关Universal驱动程序的更多信息,请参阅Microsoft的文章 - https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/getting-started-with-universal-drivers。 SiliconLabs社区论坛上的KBA提供了有关Universal驱动程序的更多信息,特别是驱动程序v10.1.1 - https://www.silabs.com/community/interface/knowledge-base.entry.html/2017/12/27/vcp_driver_-_windows-Ulur。
3.Serial Enumeration
在v6.7.5中使能了Serial Enumeration,而v10.1.1未启用Serial Enumeration。关于Serial Enumeration的介绍请参阅https://www.silabs.com/community/interface/knowledge-base.entry.html/2016/01/13/what_is_the_seriale-ZSIi
4. 对比
从技术上讲,驱动程序版本v6.7.5几乎是一个“legacy”驱动程序。 Windows和Silicon Labs计划未来仅使用v10.1.1并对该版本的驱动程序进行更新(如有必要)。
请注意,如果您运行的是装有Windows 10的台式PC,则可以在系统上使用v6.7.5或v10.1.1驱动程序。
CP2102N:“高级串口配置”选项
CP2102N具有一些其他CP210x器件所没有的附加配置选项。 它们显示在Xpress Configurator的[Advanced Serial Configuration]选项卡中。
这些设置仅适用于Windows和特定的应用。 这些设置适用于以下链接所描述的SERIAL_COMMPROP结构:
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntddser/ns-ntddser-_serial_commprop
[Allowed Baudrates]选项用于设置结构体中的SettableBaud元素,而[Maximum Baudrate]用于设置结构体中的MaxBaud元素
SERIAL_COMMPROP结构体描述了串行端口的功能和属性,并由IOCTL_SERIAL_GET_PROPERTIES请求返回,详见如下所述:
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntddser/ni-ntddser-ioctl_serial_get_properties
针对SERIAL_COMMPROP结构体对CP2102N做的这些配置对设备的行为没有直接影响。 例如,如果 [Maximum Baudrate] 设置为300,应用程序仍然可以请求更高的波特率,并且CP2102N能够支持请求。由应用程序读取SERIAL_COMMPROP结构,并决定是否阻止用户请求在该结构体中不支持的波特率。
CP2102N在自供电模式下,VBUS引脚连接方式和VBUS分压电阻
问题:
我使用的是CP2102N,还有一个外部的3.3 V稳压器,用于为VREGIN和VDD提供3.3 V电压。 我将VBUS引脚连接到USB 5 V。 VBUS是否需要分压电阻来降低输入电压? 或者,是否支持将VBUS引脚连接到3.3V稳压器输出引脚这样的配置?如果是,可以去掉VBUS上分压电阻吗?
回答:
如果上述电源配置是自供电配置,那么VBUS引脚上的需要分压电阻。 采用分压电阻的这种电源配置如CP2102N数据表第9页的图2.6所示。 请注意,在任何供电模式下(无论是自供电还是总线供电),USB的VBUS信号连接到CP2102N VBUS的引脚都需要分压电阻(如图2.6所示),以避免VBUS上可能出现的过压情况(参见https://www.silabs.com/community/interface/knowledge-base.entry.html/2018/03/31/cp2102n_requiresav-NFly)。
至于VBUS引脚连接到VDD和VREGIN的相同3.3V电源,只要CP2102N上的稳压器被旁路(即VDD = VREGIN =外部提供的3.3 V),该配置应该是可接受的。下面这种情况下不支持:如果器件是自供电的,内部稳压器用于为VDD供电(例如,如果USB 5V VBUS信号连接到VREGIN),VDD上升时间的延迟可能会导致其超出了VBUS PIN上最大额定电压的限定。 在这些情况下,都应使用VBUS分压电阻。
英文原文:https://www.silabs.com/community/interface/knowledge-base.entry.html/2018/10/02/self_powered_cp2102n-2gfe
Are Any Drivers Required for CP2615 on Windows
Question
Do I need to install any driver for CP2615 on Windows?
Answer
CP2615 USB digital audio bridge is a composite USB device that provides three USB interfaces:
1. USB Audio Class 1.0 to I2S digital audio bridge
2. USB HID Class consumer control device for volume and mute synchronization
3. Vendor specific USB serial data bridge using CP2615 I/O Protocol
The USB HID and digital audio interfaces are standard class implementations and natively supported by most operating systems, no custom driver needed.
The CP2615 serial I/O USB interface uses bulk transfers, and WinUSB driver is required for Windows platform. However, some user may observe one of CP2615 interface cannot enumerate successfully on Windows 7 which the WinUSB driver has not been installed properly. In this situation, you need to install the WinUSB driver by yourself if you want to use this interface. For more information on how to install the WinUSB driver, please see here.
Below is the CP2615 device viewing in Device Manager on Windows 7 with WinUSB driver installation.
Related Article
Manually Install WinUsb Driver on Windows 7