Interface Knowledge Base

      • CPT112S I2C slave address

        delu | 11/312/2017 | 08:59 PM


        What's the I2C slave device address for CPT112S?


        The I2C slave address is able to be customized for CPT112S. User can use Xpress Configurator which integrated in Simplicity Studio v4 to customize the I2C address. The default address is 0xE0. The address requires no shifting (i.e. the 7-bit address is already left-justified).


        Silicon Labs provides example codes to communicate with CP112S for EFM32 and EFM8 devices (run as I2C master). User can get the example code from following path once installed Simplicity Studio. 

        Take the EFM8BB3 STK as example:


        Take the EFM32PG STK as example:





      • Interface Device Availability and Longevity

        delu | 10/303/2017 | 11:59 PM


        I am concerned about the device I am using being discontinued (end of life or EOL). Is there information about product life anywhere on your website?


        The following page on our website lists the minimum longevity of our interface products:
      • How to find CP2114 device in Linux

        Jiehui | 10/302/2017 | 10:50 PM

        CP2114 is a USB-to-I2S digital audio bridge device. User can use following commands to view CP2114 device information in Linux:





        Here is an example.



      • TouchXpress Moisture Immunity

        Stephen | 10/275/2017 | 03:09 PM


        How are TouchXpress devices, such as CPT007B and CPT112s, immune to moisture? 


        TouchXpress devices can accommodate small droplets (water radius < sensor radius) as well as large droplets (water radius > sensor radius) of water. 

        Internal behavior depends on how much water is on the sensor, in terms of sensor radius. 

        Using Cap Sense Profiler and a CPT Evaluation Board is the easiest way to visualize this. 


        Scenario #1: Below is the behavior when water radius is 1.5x - 2x the sensor radius. See picture below:



        1. Start with no water on the board and touch a sensor. 

        2a. When the Raw CS value (in green) > the Active Threshold (in black), the device says the sensor is touched. 
        2b. When the Raw CS value (in green) < the Active Threshold (in black), the device says the sensor is untouched. 

        3. When you add a lot water (water radius is 1.5x -2x the sensor radius), the Raw CS value increases a lot. See picture below:



        This amount of water causes the Raw CS value > Active threshold, resulting in a false "sensor is touched". 

        Notice the dynamic baseline did not change -- this is because the amount of water is large.

        4. However, you can adjust the Active Threshold higher than the Raw CS value with water (ie to 14528 in this scenario), you can completely eliminate the false "sensor is touched". 


        Scenario #2: With much larger water radius (water radius much greater than sensor radius), we have a touch timeout feature, which resets (forces new baseline) the device when the Raw CS value > the Active Threshold (eg from water, or real touch) after x number of seconds. 

        The idea here is that a user would not typically touch a sensor for multiple seconds. 


        Scenario #3: With small water radius, the baseline (red) will dynamically increase, and the Active Threshold will automatically increase relative to the baseline. 

        Dynamic baseline auto-adjusts only when the Raw CS value increase is < 0.25x the Touch Delta (max - min Raw CS value on board with no water). 

        When Raw CS value increase is < 0.25x the Touch Delta (Scenario #1), the baseline does not auto adjust. 




      • USBXpress SDK Installer

        Stephen | 10/275/2017 | 03:07 PM


        Where can I find the USBXpress SDK installer? For example, the installer that contains SiUSBXp.dll, SiUSBXp.h, etc 


        The USBXpress webpage and installer is now refers to USBXpress as Direct Access Drivers.


        The installer can be found here:


        After installation, the USBXpress SDK files will be located at this default location:



        The host side API has not changed, i.e. functions names are remain SI_Write() and SI_Read().


        For 8-bit MCUs, the device side API has not changed.

      • Improving sensing of a CPT device through the Xpress Configurator

        marao | 10/275/2017 | 03:06 PM

        It's possible to make some changes to the configuration of the CPT devices to aid in incremental improvement in the capacitive sensing performance:

        1. Increase the oversampling OR reduce the Debounce to 2 or 1

        2. Make sure that the touch delta is as per the new board revision

        • Touch Delta = closest multiple of 16 of [Active Threshold - Inactive Threshold])
        • Threshold values can be found in the Capacitive Sense Profiler

        3. Active mode scan type should be set to "Free Run Mode"

      • Problems implementing CP2114_E107 workaround in CP2114-B01

        marao | 09/268/2017 | 02:55 PM


        While using a CP2114-B01 device, I found that the workaround for CP2114-E107 does restore the record feature. The only way record works is if the reset pin is used or the USB is reconnected. 




        Resetting the CP2114-B01 is a viable workaround for preventing the failure to resume recording (CP2114-B01 errata CP2114_E107).

        The source file for the program is 'Reset_All_CP2114s.cpp'. The attached ZIP file contains the source and header files, and prebuilt EXE/DLL files for Windows 32-bit ('x86') and 64-bit ('x64') systems. These EXE files have been verified on Windows 7 and Windows 10 machines, but these are not tested on MacOS or Linux. Using the existing CP2114 SDK example source code and projects as a guide, it should not be difficult to port this code.

        The appropriate EXE program can be run automatically at startup by placing a shortcut in the Windows Startup folder. One must ensure that the two library files are co-located with the executable, or otherwise able to be found.

      • CP2130 WriteRead Command using LibUSB for Linux

        Jiehui | 08/235/2017 | 12:47 AM

        The CP2130 USB Endpoint 1 uses a double-buffered FIFO, whereas Endpoint 2 uses a single-buffered FIFO. To improve SPI data transfer performance, Endpoint 1 can be used to double-buffer read data or write data transfer packets.


        Table below shows the CP2130 USB Bulk endpoint usage for different device configuration.

        Device Configuration

        Bulk OUT 


        Bulk IN 


        High-Priority Write Mode EP1 EP2
        High-Priority Read Mode EP2 EP1


        By default, the CP2130 is configured in high-priority write mode.


        AN792 describes CP2130 Interface Specification, and AN792SW contains an example for CP2130 Write and Read commands using libusb for Linux. Just a reminder that there is a known bug on the cp2130_libusb_read_example(), the endpoint for the 2nd libusb_bulk_transfer() call should be 0x82 indicating using Bulk IN endpoint 2.


        Below is an example for the CP2130 WriteRead command.


      • CP2615 Customization on a Custom Board

        Stephen | 08/213/2017 | 06:40 PM


        How do I customize a CP2615 on a board I designed?


        To customize a CP2615 during development and prototyping, Xpress Configurator is the recommended GUI tool.

        In a production setting, the Standalone Manufacturing Tool is an available command line tool for Windows, Mac and Linux. For more 
        information about the Standalone Manufacturing Tool, see Application Note AN721: USBXpress Device Customization Guide.

        To customize a CP2615, Xpress Configurator and the Standalone Manufacturing Tool require a CP2112 USB-to-I2C bridge, and the CP2112's PID must be 0xEA93. See the following connection diagram.



        By default, the CP2112 PID is 0xEA90. To change the PID of a CP2112, use Xpress Configurator and refer to Application Note AN721: USBXpress Device Customization Guide.

        Note: A CP2112 with PID 0xEA93 is included on the CP2615 Evaluation Board. Therefore, the CP2615 on the CP2615 Evaluation Board is ready for customization by Xpress Configurator and the Standalone Manufacturing Tool.

        Note: When using the CP2112 on the CP2615 Evaluation Kit to program a CP2615 on a custom board, remove the shorting blocks on
        J13, J14, J15, and J16.


      • CPT212B Configuration

        Alan_S | 08/213/2017 | 06:38 PM


        Why won't my CPT212B configuration work?


        Timing is critical during configuration of the CPT212B. You must make sure to adhere to the timing specifications in the I2C Configuration Interface Table in the device's datasheet. Each command must have this delay after it before sending any further command to the device.