第一次接到模拟信号采集需求时,我盯着需求文档发呆了半小时。客户要求采集工业现场的4-20mA电流信号,测量精度要达到0.1%,采样频率不低于1kHz。这看似简单的需求背后,藏着无数选型陷阱。
输入范围是第一个要攻克的堡垒。4-20mA经过250Ω采样电阻转换为1-5V电压信号,这意味着ADC的输入范围至少要覆盖0-5V。但实际项目中常遇到传感器异常导致信号超限的情况,所以我通常会选择输入范围更宽的芯片,比如±10V量程的AD7606。有次项目用了只支持0-5V的ADC,结果现场传感器故障导致信号冲到8V,整个采集板直接报废,这个教训让我至今记忆犹新。
信号类型的坑更隐蔽。客户没说清楚信号源阻抗,等板子做出来才发现传感器距离采集端有20米,信号线电阻导致严重衰减。后来我养成了习惯:在需求阶段就问清楚信号源阻抗、传输距离、是否有干扰源这些细节。对于高阻抗信号源,必须选择输入阻抗大于1MΩ的ADC,或者前端加缓冲放大器。
选型手册上的输入范围参数就像汽车的最高时速——标称值往往带着水分。某次我用某品牌ADC采集±5V信号,数据手册标明满量程±6V,实际测试发现输入超过±5.3V就开始失真。现在我的经验法则是:实际信号最大幅值要小于ADC标称范围的80%。
工业场景还要考虑共模电压的影响。比如要采集热电偶差分信号,共模电压可能高达30V,这时就得选AD7793这种带PGA的ADC,或者外加隔离放大器。下表是我整理的常见场景输入范围选择策略:
| 信号类型 | 推荐输入范围 | 典型芯片 |
|---|---|---|
| 0-5V单端 | 0-6V | ADS1115 |
| ±10V工业信号 | ±12V | AD7606 |
| 热电偶差分 | ±0.3V+高压隔离 | AD7124 |
新手常犯的错误是盲目追求高采样率。曾有个电机振动监测项目,团队选了1MSPS的AD4020,结果发现MCU根本处理不过来这么大数据量,最后只能降频使用,白白浪费芯片性能。我现在会做三层验证:
对于多通道系统更要小心。AD7606标称200kSPS是单通道速率,8通道同时工作时每通道只有25kSPS。有次项目没注意这个细节,导致振动信号采样不足,不得不返工重做硬件。
分辨率12位不等于精度12位——这是最容易被混淆的概念。某温度采集项目选了16位的ADS1115,实测发现噪声导致有效位只有13位。后来才知道要看芯片的ENOB(有效位数)参数,而不是简单看ADC位数。
精度保障需要系统级考虑。包括:
有个取巧的办法:看芯片厂商提供的评估板设计。TI的ADS8860评估板用了四层板设计,单独模拟地层,参考电压加π型滤波,这些细节都是保证精度的关键。
SPI接口的ADC看似省IO,但开发难度可能更大。某次用AD7190采集称重传感器信号,SPI时钟相位设置错误导致数据全乱。后来我总结出接口选型三步法:
对于多ADC系统,并行接口仍是首选。有个16通道数据采集项目,用AD7689的菊花链SPI架构,结果发现配置寄存器要级联传递,软件复杂度暴增。后来改用AD7656并行接口,虽然多用20个IO,但开发周期缩短了60%。
功耗参数在电池设备中至关重要。比较ADS1248和AD7124时发现,前者标称功耗1mW是休眠状态值,实际工作功耗达10mW。现在我会特别关注工作模式下的典型电流值。
启动时间这个冷门参数也曾让我栽跟头。AD7793需要20ms启动时间,用在自动量程切换系统时会导致数据丢失。后来改用AD7124,其1ms的启动时间完美解决问题。
温度系数更是隐蔽杀手。某工业设备在-20℃环境下精度骤降,排查发现是ADC的增益温漂达50ppm/℃。现在选型时必查两个温度参数:失调电压温漂和增益温漂。
基于20多个项目的经验教训,我总结出这个可复用的选型检查表:
最后分享一个真实案例:某物联网关项目需要采集8路温度、4路压力、2路振动信号。经过上述清单筛选,最终选择AD7124-8处理温度(高精度慢速),AD7606C-16处理振动(高速同步采样),ADS1015处理压力(低成本中等精度)。这个组合比原计划的统一用AD7606方案节省37%成本,且完美满足所有性能需求。