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
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.
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.
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|
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.
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.
|Firmware Version (Major.Minor.Build)||Revision|
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?
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是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上使用。两个版本的驱动程序之间的差异体现在以下方式:
这写差异可以通过release notes文档获取，可以从此链接获取 - https://www.silabs.com/documents/public/release-notes/CP210x_Universal_Windows_Driver_ReleaseNotes.txt
驱动程序版本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。
在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
从技术上讲，驱动程序版本v6.7.5几乎是一个“legacy”驱动程序。 Windows和Silicon Labs计划未来仅使用v10.1.1并对该版本的驱动程序进行更新（如有必要）。
CP2102N具有一些其他CP210x器件所没有的附加配置选项。 它们显示在Xpress Configurator的[Advanced Serial Configuration]选项卡中。
[Allowed Baudrates]选项用于设置结构体中的SettableBaud元素，而[Maximum Baudrate]用于设置结构体中的MaxBaud元素
针对SERIAL_COMMPROP结构体对CP2102N做的这些配置对设备的行为没有直接影响。 例如，如果 [Maximum Baudrate] 设置为300，应用程序仍然可以请求更高的波特率，并且CP2102N能够支持请求。由应用程序读取SERIAL_COMMPROP结构，并决定是否阻止用户请求在该结构体中不支持的波特率。
我使用的是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分压电阻。
Do I need to install any driver for CP2615 on Windows?
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.