1.简介
适用于触摸检测、接近感应、液位检测、介质识别、微小位移变化检测等场景。
传感器板通过 LC 谐振方式感知外部电容变化,例程由常规核心板 STM32F103 完成初始化、采样、计算和串口输出,可直接连接上位机进行实时波形观察与数据记录。
2.工作原理
2.1 电容检测原理
FDC2214 是一款高分辨率电感-电容数字转换器。每个通道都将传感电极、外接电感以及前端寄生电容组成一个 LC 谐振回路:
当被测物体接近传感区域时,传感电极对地或对目标的等效电容发生变化,从而引起谐振频率变化。
FDC2214 对该频率进行数字化测量,再根据已知电感值反推出等效电容值。
2.2 本项目中的数据处理方式
在当前固件中,每个通道的计算流程为:
- 通过 I2C 切换
FDC2214当前工作通道。 - 等待转换完成,并丢弃切换后的第一帧数据,避免读到前一通道残留值。
- 读取 28 位原始转换结果
raw_data。 - 根据参考时钟计算传感频率
sensor_frequency_hz。 - 根据设定电感值
L = 18 uH计算等效电容值。 - 再减去预设前端偏置电容
33 pF,得到更便于观察的结果。
等效电容计算公式可概括为:
这意味着:
- 电感参数设置越接近实际值,换算后的电容值越准确
- 前端寄生电容越稳定,测量重复性越好
- 传感电极的形状、面积、走线和安装环境都会影响结果
3. 典型用途
本传感器板适合以下应用方向:
- 电容触摸按键、滑条和面板触控
- 非接触接近检测
- 水位、液位、界面高度变化检测
- 塑料、玻璃、亚克力后方的隔空触摸
- 介质存在/缺失检测
- 小范围位移、覆盖物变化、夹持状态检测
- 电容传感教学、算法验证、产品原型开发等
4.开发板特点
- 四通道电容采集,引出触摸焊盘;
- 板载LDO,支持3.3V/5V电压供电
- 板载测试环,便捷接入示波器/逻辑分析仪
- 四层沉金工艺,降低阻抗干扰
- 板载有源40M晶振
5.参数清单
| 参数 | 描述 |
|---|---|
| 主芯片 | FDC2214RGHR |
| 工作电压 | 3.3V/5V |
| 工作频率 | 外部40M有源晶振 |
| 最大输入电容 | 250nF(10kHz 频率,1mH 电感时) |
| 分辨率 | 28 位 |
| 功耗 | 2.1mA(有源)、关断电流:200nA |
| 温度范围 | -40°C 至 +125°C |
6.引脚列表
| 引脚端口 | 信号 | 描述 |
|---|---|---|
| 1 | VCC | 模块供电端口,支持3.3V或5V供电 |
| 2 | GND | 模块接地引脚 |
| 3 | FDC_SD | 引脚设为高电平时,FDC 进入关断模式 |
| 4 | FDC_INT | 可配置中断输出引脚 |
| 5 | FDC_ADDR | I2C 地址选择引脚: 当 ADDR=L 时,I2C 地址 = 0x2A, 当 ADDR=H 时,I2C 地址 = 0x2B。 |
| 6 | FDC_SDA | I2C 数据输入/输出 |
| 7 | FDC_SCL | I2C 时钟输入 |
7.例程与开发板关键参数
7.1例程配置
- 主控:
STM32F103 - 电容转换芯片:
FDC2214 - 通道数:
4 - I2C 地址:
0x2A(固件中使用FDC2214_I2C_ADDR_0) - I2C 速率:
100 kHz - 串口:
USART1 - 串口波特率:
115200 - 参考时钟:
40 MHz外部时钟 - 每通道电感设定:
18 uH - 每通道偏置电容扣除值:
33 pF - 默认采样输出周期:`100 ms
7.2例程MCU引脚配置
PB6->I2C1_SCLPB7->I2C1_SDAPA9->USART1_TXPA10->USART1_RXPB3->FDC_SDPB4->FDC_INTPB5->FDC_ADDRPC13-> 状态 LED
7.3输出数据说明
下位机通过串口输出每个通道的原始值、频率与电容值,默认格式如下:
========== FDC2214 ==========
CH0: raw=15654989, f=4665550 Hz, C=31.649 pF
CH1: raw=15601708, f=4649671 Hz, C=32.091 pF
CH2: raw=15582537, f=4643958 Hz, C=32.252 pF
CH3: raw=15677608, f=4672291 Hz, C=31.463 pF
字段说明:
raw:FDC2214 采集到的 28 位原始转换值f:根据参考时钟换算得到的传感频率C:根据电感值换算得到的等效电容值,并扣除了固定偏置电容
7.4例程关键步骤说明
7.4.1主程序入口
文件:main.c
主程序流程:
- 初始化 HAL 库与系统时钟
- 初始化 GPIO、I2C、USART
- 调用
FDC2214_App_Init(&hi2c1)完成 FDC2214 配置 - 在主循环中持续执行
FDC2214_App_Task()
7.4.2应用层初始化
文件:fdc2214_app.c
FDC2214_App_Init() 负责组装应用层配置:
config.i2c_addr = (uint16_t)(FDC2214_I2C_ADDR_0 << 1);
config.use_external_clock = 1U;
config.ref_clock_hz = 40000000UL;
config.channel_count = 4U;
这里明确了三个关键信息:
- 采用
0x2A地址 - 采用外部
40 MHz参考时钟 - 启用全部 4 个通道
同时,代码中定义了每个通道的电感和补偿值:
static const double g_channel_inductance_h[4] = {
18.0e-6, 18.0e-6, 18.0e-6, 18.0e-6
};
static const double g_channel_offset_pf[4] = {
33.0, 33.0, 33.0, 33.0
};
7.4.3FDC2214 驱动初始化
文件:fdc2214.c
FDC2214_Init() 完成以下关键动作:
- 控制
ADDR和SD管脚进入目标状态 - 读取
DEVICE_ID确认芯片在线 - 为每个通道写入
RCOUNT、OFFSET、SETTLECOUNT - 设置时钟分频与驱动电流
- 写入
MUX_CONFIG - 选中默认通道
这部分决定了测量速度、稳定性和动态范围,是后续优化量程与灵敏度的核心。
7.4.4单通道读取逻辑
根据频率反算电容
sensor_frequency_hz = (double)data->sensor_frequency_hz;
omega = FDC2214_TWO_PI * sensor_frequency_hz;
capacitance_f = 1.0 / (inductance_h * omega * omega);
data->capacitance_pf = capacitance_f * 1.0e12;
7.4.5上位机工具说明
上位机基于 Python + Qt,主要功能包括:
- 4 通道电容实时曲线显示
- 每通道实时数值显示
- 峰峰值统计
- 最大值统计
- 采样数据导出为
CSV
8.其他注意事项
8.1 电容传感对结构非常敏感
电容式检测结果不仅取决于芯片本身,还高度依赖:
- 电极面积
- 电极形状
- 覆盖材料厚度
- 背部地平面距离
- 外部线缆长度
- 环境湿度和温度
- 安装位置附近是否存在大面积金属
因此,样板测试通过并不等于直接量产可用,量产前必须结合最终结构重新标定。
同时,PCBA的固定与否有关键影响,尤其调试过程中,手的触摸可能导致数值异常波动。
8.2 当前电容值带有模型假设
当前固件中使用了固定参数:
- 电感:
18 uH - 偏置补偿:
33 pF
如果实际 BOM、寄生参数或布线与此不完全一致,则 C=xx.xxx pF 更适合作为“相对变化值”参考,而不是绝对校准值。
8.3 建议增加软件稳健性处理
若准备正式发布为产品,建议在现有代码基础上进一步加入:
- 开机自动基线校准
- 滑动平均或 IIR 低通滤波
- 通道异常值剔除
- 温漂补偿
- 传感器开路/短路诊断
- 参数掉电保存
9.实物及尺寸图

本板外形为
65 mm x 65 mm,安装孔位和传感区域均已预留,便于集成和固定。

10.上位机界面
静态测量,2分钟峰峰值小于0.008pF

液位检测场景,峰峰值13pF

触摸检测,峰峰值1.5pF以上,需配合适当算法
