FDC2X1X Capacitance-to-Digital Converter

Browse source code on GitHub

Overview

This sample application periodically reads frequency and capacitance data from the FDC2X1X sensor in polling mode or optionally with data ready trigger. It is able to read the 12-Bit and 28-Bit, as well as the 2-Channel and 4-Channel versions (FDC2112, FDC2114, FDC2212, FDC2214). The 4-channel versions are chosen through devicetree properties. The default in this sample is the 2-channel version.

Capacitive sensing is a low-power, low-cost, high-resolution contactless sensing technique that can be applied to a variety of applications ranging from proximity detection and gesture recognition to remote liquid level sensing. The sensor in a capacitive sensing system is any metal or conductor, allowing for low cost and highly flexible system design. The main challenge limiting sensitivity in capacitive sensing applications is noise susceptibility of the sensors. With the FDC2x1x innovative EMI resistant architecture, performance can be maintained even in presence of high-noise environments.

Wiring

This sample uses the FDC2X1X sensor controlled using the I2C interface. Connect supply VDD and GND. The supply voltage can be in the 2.7V to 3.6V range.

Connect SD to a GPIO to control the Shutdown Mode.

Connect Interface: SDA, SCL and optionally connect INTB to a interrupt capable GPIO.

For detailed description refer to the FDC2X1X datasheet at pages 4-5.

Building and Running

This sample outputs sensor data to the console and can be read by any serial console program. It should work with any platform featuring a I2C interface. The platform in use requires a custom devicetree overlay. In this example the nRF9160 DK board is used. The devicetree overlay of this board provides example settings for evaluation, which you can use as a reference for other platforms.

west build -b nrf9160dk/nrf9160 samples/sensor/fdc2x1x
west flash

Sample Output: 2-Channel, 28-Bit (FDC2212)

ch0: 5.318888 MHz ch1: 5.150293 MHz
ch0: 49.742308 pF ch1: 53.052260 pF

ch0: 5.318819 MHz ch1: 5.150307 MHz
ch0: 49.743612 pF ch1: 53.051964 pF

ch0: 5.318822 MHz ch1: 5.150200 MHz
ch0: 49.743548 pF ch1: 53.054176 pF

ch0: 5.318752 MHz ch1: 5.150265 MHz
ch0: 49.744860 pF ch1: 53.052828 pF

<repeats endlessly>

Sample Output: 4-Channel, 12-Bit (FDC2114)

ch0: 4.966171 MHz ch1: 4.946465 MHz ch2: 4.985879 MHz ch3: 4.907051 MHz
ch0: 57.059016 pF ch1: 57.514568 pF ch2: 56.608844 pF ch3: 58.442204 pF

ch0: 4.966171 MHz ch1: 4.946465 MHz ch2: 4.985879 MHz ch3: 4.907051 MHz
ch0: 57.059016 pF ch1: 57.514568 pF ch2: 56.608844 pF ch3: 58.442204 pF

ch0: 4.966171 MHz ch1: 4.946465 MHz ch2: 4.985879 MHz ch3: 4.907051 MHz
ch0: 57.059016 pF ch1: 57.514568 pF ch2: 56.608844 pF ch3: 58.442204 pF

ch0: 4.966171 MHz ch1: 4.946465 MHz ch2: 4.985879 MHz ch3: 4.907051 MHz
ch0: 57.059016 pF ch1: 57.514568 pF ch2: 56.608844 pF ch3: 58.442204 pF

<repeats endlessly>

References

FDC2X1X Datasheet and Product Info:

https://www.ti.com/product/FDC2114

See also

Sensor Interface