STM32F103C8T6 + ADS1256 高精度电子秤:从1mV/V传感器到24位ADC的300倍放大电路设计

发布时间:2026/7/10 7:47:12
STM32F103C8T6 + ADS1256 高精度电子秤:从1mV/V传感器到24位ADC的300倍放大电路设计
STM32F103C8T6 ADS1256 高精度电子秤从1mV/V传感器到24位ADC的300倍放大电路设计在工业测量和实验室应用中高精度称重系统对微弱信号的处理能力直接决定了整个系统的性能边界。本文将深入解析如何构建一个基于STM32F103C8T6和24位Σ-Δ ADC ADS1256的高精度电子秤系统重点攻克1mV/V灵敏度应变传感器的信号调理难题实现总增益300倍的超低噪声放大链路。1. 系统架构与设计挑战典型的高精度电子秤系统由四个关键模块构成应变传感器、模拟信号调理电路、高分辨率ADC和数字处理单元。当使用1mV/V灵敏度的应变片传感器时10V激励电压下满量程输出仅10mV而系统需要检测的最小重量变化可能对应纳伏级别的电压变化。主要技术难点传感器输出的差分信号包含高达5V的共模电压有用信号被淹没在电源噪声和环境干扰中300倍增益要求下需保持极低的噪声和漂移24位ADC的完整性能挖掘需要精心设计模拟前端关键指标系统总噪声需控制在3μVpp以下温漂小于0.5ppm/℃才能实现0.01%FS的测量精度。2. 信号调理电路设计2.1 仪表放大器级设计第一级采用TI的INA128仪表放大器构建差动放大电路这是整个信号链噪声性能的决定性环节。该级承担三个核心任务抑制5V共模电压提供初始增益约50倍保持高输入阻抗避免负载效应// 增益计算公式 Gain 1 (50kΩ / Rg) 选择Rg1.02kΩ获得G50的增益关键参数对比参数INA128AD620LT1167输入噪声8nV/√Hz9nV/√Hz6nV/√Hz共模抑制比120dB100dB130dB增益误差0.5%0.3%0.05%温漂3μV/℃1μV/℃0.5μV/℃2.2 二级放大与电平转换经过仪表放大后的信号仍需进一步放大并转换为单端信号。采用OPA2333运放构建两级电路电压跟随器隔离前后级阻抗反相放大器完成信号极性转换和增益调节反相放大器关键设计# 反相放大器增益计算 Rf 100kΩ Rin 10kΩ 增益 -Rf/Rin -10 总增益 50(INA) × 6 300实际PCB布局时需注意在反馈电阻两端添加0.1μF去耦电容采用1%精度的金属膜电阻信号走线做Guard Ring保护3. 低通滤波与抗混叠设计24位ADC的有效分辨率极易受到高频噪声影响。设计一个二阶Sallen-Key低通滤波器截止频率设定为10Hz截止频率公式 fc 1/(2π√(R1R2C1C2)) 取R1R216kΩ, C1C21μF 实际fc ≈ 9.95Hz滤波器特性衰减斜率-40dB/decade在50Hz工频处衰减60dB使用C0G材质的电容保证温度稳定性4. ADS1256接口设计与配置4.1 硬件连接优化STM32与ADS1256采用4线SPI接口特别注意将DRDY引脚连接到STM32的外部中断输入在SCLK和DIN之间加33Ω电阻抑制振铃模拟和数字地单点连接在ADC下方推荐电源配置AVDD: 5V → LP2951 → 3.3V模拟电源 DVDD: 直接连接STM32的3.3V 参考电压: 使用ADR445提供5.000V基准4.2 寄存器配置流程// 初始化序列示例 void ADS1256_Init(void) { // 复位芯片 ADS1256_WriteCmd(CMD_RESET); Delay(10); // 配置数据速率和增益 uint8_t buf[2] { 0x01, // DRATE[2:0]001(10SPS), PGA1 0x03 // 增益8自动校准使能 }; ADS1256_WriteReg(REG_ADCON, buf, 2); // 设置输入多路复用器 ADS1256_WriteReg(REG_MUX, 0x01); // AIN0-AIN1 }注意上电后需等待至少50ms再进行校准操作确保基准电压稳定。5. 数字滤波与数据处理5.1 滑动加权平均算法ADC原始数据需经过数字滤波处理。采用改进的滑动窗口算法#define SAMPLE_SIZE 32 float WeightedAverage(int32_t new_sample) { static int32_t samples[SAMPLE_SIZE]; static uint8_t index 0; static float sum 0; sum - samples[index] * (index1); // 去除旧样本 samples[index] new_sample; sum new_sample * (index1); // 加入新样本 index (index 1) % SAMPLE_SIZE; return sum / ((SAMPLE_SIZE*(SAMPLE_SIZE1))/2); }该算法特点对新数据赋予更高权重有效抑制周期性干扰计算量适中适合STM32F1035.2 温度补偿策略应变片的灵敏度受温度影响显著。采用NTC热敏电阻测量环境温度建立三维补偿表温度(℃)零点偏移(μV)灵敏度系数-1012.51.01208.21.005250.01.00050-6.70.99275-15.30.981补偿公式校正值 原始值 × (1 αΔT) βΔT 其中α是灵敏度温漂系数β是零点温漂系数6. 性能测试与优化6.1 噪声测试结果在不同配置下测量输入端短路时的噪声折合到输入端增益带宽噪声(μVrms)ENOB10010Hz2.121.52005Hz1.822.13003Hz2.321.36.2 线性度测试使用标准砝码进行满量程测试数据经最小二乘法拟合线性误差 0.008%FS 重复性误差 0.003%FS 迟滞误差 0.005%FS优化方向改用三运放仪表放大器结构可提升CMRR 10dB采用4线制传感器连接消除线阻影响增加数字陷波滤波器抑制特定频率干扰