With Auto Read Response enabled, calling HidSmbus_AddressReadRequest() followed by HidSmbus_GetReadResponse() results in incorrect data. The response buffer will usually include the address of the target data. For example, if the bytes at address 0xAA are 0x04, 0x05, requesting an address read for this data and then calling GetReadResponse will result in the following data: 0xAA, 0x05.
This is a known issue with the CP2112. There is a small window of time between sending the last address byte of the Read Request and waiting for the restart to complete where the device could mistakenly send the SMB buffer containing the address bytes as a response.
The soultion, in this case, is to disable Auto Read Response, and instead use Force Read Response after every Address Read Request. The command flow would then be:
For more information, see this post.
How do I analyze a blue screen to find the cause?
Blue screens in Windows will normally generate a memory dump file which can be opened in WinDbg to analyze the stack trace and determine the kernel module possibly responsible for the error.
How do I turn the CP210x VCP Driver Installer, using Microsoft's Driver Package Installer (DPInst), into a quiet installer that can run from a command line or batch script?
DPInst uses command line flags to configure the driver installer behavior.
To enable silent mode for the CP210x DPInst driver installer (CP210xVCPInstaller_x86.exe and CP210xVCPInstaller_x64.exe):
There are several reasons why a silent driver install might fail:
For more information about DPInst, please see:
DPInst Command Line Switches:
DPInst Return Codes:
Silicon Labs requests that purchasers of a product reference the product reference material or contact their product manufacturer with questions or information if encountering an issue with the product.
Silicon Labs is an IC manufacturer and does not make complete products, like printers, scanners, GPS modules, etc. The CP210x is a USB-to-UART bridge IC that can be included in a complete product to easily add USB connectivity. Silicon Labs doesn't support these products for the following reasons:
1) We did not design or create the hardware or software associated with the product, so we do not have access to schematics or source code to assist with the debugging process.
2) We provide drivers for the CP210x on our website. However, these drivers or the CP210x device may be customized such that the default drivers no longer work. We have no knowledge of how the product manufacturer customized these drivers.
3) Working with an individual purchaser of a complete product solves the problem only for that one party, whereas assisting the product manufacturer with a potential issue will resolve the problem for all purchasers of that product.
Sometimes a product manufacturer doesn't provide contact information to provide technical assistance or doesn't respond to a question. The only recommendation Silicon Labs has in this circumstance is to try the latest drivers. To check if the default drivers may work, use a program called UVCView (attached to this article) to determine the VID (Vendor ID) and PID (Product ID) of the CP210x in the product. To do this, connect the hardware to the PC and open the correct version of UVCView for the operating system (x86 or x64).
The default VID is 0x10C4 and the default PID is 0xEA60 for CP2101/2/3/9, 0xEA70 for CP2105, and 0xEA71 for CP2108. If these are the values shown by UVCView, the default VCP drivers from the Silicon Labs website should work for your PC, as long as the operating system is supported and the hardware is operating correctly. More information can be found on the http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx webpage.
If the device VID is 0x10C4 and the PID is 0xEA61, this indicates the CP210x is intended to use the USBXpress driver. This driver can be found on the website here: http://www.silabs.com/products/mcu/Pages/USBXpress.aspx.
If the VID/PID combination is any value other than the values listed above, you can create a custom Windows driver for the product using AN220 (www.silabs.com/interface-appnotes). The AN220 software (AN220SW) is the custom driver wizard, and the AN220 document describes what all of the options mean. The most important modification is that the VID and PID values must match the values read from the CP210x device using UVCView. If the product software is expecting a COM port, use the VCP driver to create the custom driver. Otherwise, use the USBXpress driver.
Note: Once the default driver is customized, it is no longer certified by Windows. For 32-bit versions of Windows 7 and Windows 8, a warning will be displayed when installing the driver. The 64-bit versions of Windows 7 and 8 will no longer allow an uncertified driver to install. To install the uncertified driver, the OS will need to have driver signing disabled. More information can be found here:
At this point, if either the default or customized driver fails to install or work with the product software, Silicon Labs cannot provide any additional assistance, since we have no knowledge of the product hardware or software.
Other keywords: end product, third party manufacturer, final product