Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use FDC1004: Examples, Pinouts, and Specs

Image of FDC1004
Cirkit Designer LogoDesign with FDC1004 in Cirkit Designer

Introduction

The FDC1004 is a high-precision capacitance-to-digital converter (CDC) manufactured by Protocentral. It is designed to measure capacitance with exceptional accuracy and resolution, making it ideal for a wide range of sensing applications. The FDC1004 supports up to four measurement channels and features an integrated shield driver to minimize interference and noise, ensuring reliable performance in challenging environments.

Explore Projects Built with FDC1004

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
Image of women safety: A project utilizing FDC1004 in a practical application
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
NFC-Enabled Access Control System with Time Logging
Image of doorlock: A project utilizing FDC1004 in a practical application
This circuit is designed for access control with time tracking capabilities. It features an NFC/RFID reader for authentication, an RTC module (DS3231) for real-time clock functionality, and an OLED display for user interaction. A 12V relay controls a magnetic lock, which is activated upon successful NFC/RFID authentication, and a button switch is likely used for manual operation or input. The T8_S3 microcontroller serves as the central processing unit, interfacing with the NFC/RFID reader, RTC, OLED, and relay to manage the access control logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
NFC-Enabled Access Control System with Real-Time Clock and OLED Display
Image of doorlock: A project utilizing FDC1004 in a practical application
This circuit is designed as an access control system with time-tracking capabilities. It uses an NFC/RFID reader for authentication, a real-time clock for time-stamping events, and an OLED display for user interface, all controlled by a T8_S3 microcontroller. A relay module actuates a magnetic lock, and a button switch provides additional user input, with a switching power supply delivering the necessary voltages.
Cirkit Designer LogoOpen Project in Cirkit Designer
STM32 Nucleo F303RE Controlled Ultrasonic Sensing with RGB Feedback and I2C LCD Display
Image of CS435-final: A project utilizing FDC1004 in a practical application
This circuit features a STM32 Nucleo F303RE microcontroller interfaced with three HC-SR04 ultrasonic sensors for distance measurement and a 20x4 LCD display over I2C for data output. Additionally, there is a WS2812 RGB LED strip controlled by the microcontroller for visual feedback. The power supply provides a common 5V to the LCD, ultrasonic sensors, LED strip, and the microcontroller's +5V input, with all components sharing a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with FDC1004

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of women safety: A project utilizing FDC1004 in a practical application
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of doorlock: A project utilizing FDC1004 in a practical application
NFC-Enabled Access Control System with Time Logging
This circuit is designed for access control with time tracking capabilities. It features an NFC/RFID reader for authentication, an RTC module (DS3231) for real-time clock functionality, and an OLED display for user interaction. A 12V relay controls a magnetic lock, which is activated upon successful NFC/RFID authentication, and a button switch is likely used for manual operation or input. The T8_S3 microcontroller serves as the central processing unit, interfacing with the NFC/RFID reader, RTC, OLED, and relay to manage the access control logic.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of doorlock: A project utilizing FDC1004 in a practical application
NFC-Enabled Access Control System with Real-Time Clock and OLED Display
This circuit is designed as an access control system with time-tracking capabilities. It uses an NFC/RFID reader for authentication, a real-time clock for time-stamping events, and an OLED display for user interface, all controlled by a T8_S3 microcontroller. A relay module actuates a magnetic lock, and a button switch provides additional user input, with a switching power supply delivering the necessary voltages.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of CS435-final: A project utilizing FDC1004 in a practical application
STM32 Nucleo F303RE Controlled Ultrasonic Sensing with RGB Feedback and I2C LCD Display
This circuit features a STM32 Nucleo F303RE microcontroller interfaced with three HC-SR04 ultrasonic sensors for distance measurement and a 20x4 LCD display over I2C for data output. Additionally, there is a WS2812 RGB LED strip controlled by the microcontroller for visual feedback. The power supply provides a common 5V to the LCD, ultrasonic sensors, LED strip, and the microcontroller's +5V input, with all components sharing a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Proximity Sensing: Detecting the presence or absence of objects.
  • Liquid Level Detection: Measuring liquid levels in tanks or containers.
  • Touch Sensing: Implementing touch-sensitive interfaces.
  • Environmental Monitoring: Measuring changes in capacitance due to environmental factors.
  • Industrial Automation: Non-contact sensing for automation systems.

Technical Specifications

The FDC1004 is a versatile component with the following key technical details:

General Specifications

Parameter Value
Supply Voltage (VDD) 3.0V to 3.6V
Operating Current 750 µA (typical)
Measurement Channels 4
Capacitance Measurement ±15 pF (with up to 100 pF offset)
Resolution 16 bits
Interface I²C
Operating Temperature Range -40°C to +85°C

Pin Configuration and Descriptions

The FDC1004 is typically available in a 10-pin package. Below is the pinout and description:

Pin Number Pin Name Description
1 VDD Power supply input (3.0V to 3.6V).
2 GND Ground.
3 SDA I²C data line.
4 SCL I²C clock line.
5 CAP1 Input for capacitance measurement channel 1.
6 CAP2 Input for capacitance measurement channel 2.
7 CAP3 Input for capacitance measurement channel 3.
8 CAP4 Input for capacitance measurement channel 4.
9 SHLD1 Shield driver output for CAP1 and CAP2.
10 SHLD2 Shield driver output for CAP3 and CAP4.

Usage Instructions

The FDC1004 is straightforward to use in a circuit, but proper configuration and design considerations are essential for optimal performance.

How to Use the FDC1004 in a Circuit

  1. Power Supply: Connect the VDD pin to a stable 3.0V to 3.6V power source and the GND pin to ground.
  2. I²C Communication: Connect the SDA and SCL pins to the corresponding I²C lines of your microcontroller. Use pull-up resistors (typically 4.7 kΩ) on both lines.
  3. Capacitance Measurement: Connect the capacitance to be measured to one of the CAPx pins (e.g., CAP1). If shielding is required, connect the SHLDx pin to the shield of the sensor.
  4. Initialization: Configure the FDC1004 via I²C commands to set the measurement mode, channel, and other parameters.

Important Considerations and Best Practices

  • Shielding: Use the integrated shield driver (SHLDx pins) to reduce noise and interference in capacitive measurements.
  • Offset Calibration: The FDC1004 supports offset calibration to account for parasitic capacitance in the system.
  • I²C Address: The default I²C address of the FDC1004 is 0x50. Ensure no address conflicts if multiple devices are on the same bus.
  • Bypass Capacitor: Place a 0.1 µF ceramic capacitor close to the VDD pin for power supply decoupling.

Example Code for Arduino UNO

Below is an example of how to interface the FDC1004 with an Arduino UNO to measure capacitance on channel 1:

#include <Wire.h>

// FDC1004 I2C address
#define FDC1004_ADDRESS 0x50

// Registers for FDC1004
#define FDC1004_MEAS1_MSB 0x00  // Measurement 1 MSB register
#define FDC1004_MEAS1_LSB 0x01  // Measurement 1 LSB register

void setup() {
  Wire.begin(); // Initialize I2C communication
  Serial.begin(9600); // Initialize serial communication for debugging

  // Configure FDC1004 (example: set measurement mode for channel 1)
  Wire.beginTransmission(FDC1004_ADDRESS);
  Wire.write(0x08); // Configuration register for channel 1
  Wire.write(0x10); // Enable measurement on channel 1
  Wire.endTransmission();
}

void loop() {
  uint16_t capacitanceMSB, capacitanceLSB;
  float capacitance;

  // Request measurement data from FDC1004
  Wire.beginTransmission(FDC1004_ADDRESS);
  Wire.write(FDC1004_MEAS1_MSB); // Point to MSB register
  Wire.endTransmission();
  Wire.requestFrom(FDC1004_ADDRESS, 2); // Request 2 bytes (MSB + LSB)

  if (Wire.available() == 2) {
    capacitanceMSB = Wire.read(); // Read MSB
    capacitanceLSB = Wire.read(); // Read LSB
    capacitance = ((capacitanceMSB << 8) | capacitanceLSB) * 0.000244; 
    // Convert to pF (example scaling factor)
    Serial.print("Capacitance: ");
    Serial.print(capacitance);
    Serial.println(" pF");
  }

  delay(1000); // Wait 1 second before next measurement
}

Notes on the Code

  • The scaling factor (0.000244) is an example and may need adjustment based on your configuration.
  • Ensure proper pull-up resistors are connected to the SDA and SCL lines.

Troubleshooting and FAQs

Common Issues

  1. No I²C Communication:

    • Ensure the SDA and SCL lines are correctly connected to the microcontroller.
    • Verify that pull-up resistors are present on the I²C lines.
    • Check the I²C address of the FDC1004 (default is 0x50).
  2. Inaccurate Capacitance Measurements:

    • Verify that the shield driver (SHLDx) is properly connected to reduce noise.
    • Perform offset calibration to account for parasitic capacitance.
    • Ensure the sensor is not exposed to excessive environmental noise.
  3. Device Not Responding:

    • Confirm that the power supply voltage is within the specified range (3.0V to 3.6V).
    • Check for loose or incorrect connections.

FAQs

Q: Can the FDC1004 measure negative capacitance?
A: No, the FDC1004 measures capacitance in the range of ±15 pF with an offset of up to 100 pF.

Q: What is the maximum I²C clock speed supported?
A: The FDC1004 supports I²C clock speeds up to 400 kHz (Fast Mode).

Q: Can I use all four channels simultaneously?
A: Yes, the FDC1004 can measure capacitance on up to four channels, but measurements are taken sequentially.

Q: How do I reduce noise in my measurements?
A: Use the integrated shield driver (SHLDx pins) and ensure proper grounding and shielding in your circuit design.