1. 两款模数转换器核心参数对比
CM1103和ADS1115作为工业领域常见的模数转换芯片,在精度、接口和功耗等关键指标上存在显著差异。先看基础参数对比:
| 参数 | CM1103 | ADS1115 |
|---|---|---|
| 分辨率 | 16位 | 16位 |
| 采样率 | 860SPS(单通道) | 860SPS(最大) |
| 输入通道 | 单端1路/差分1路 | 单端4路/差分2路 |
| 输入电压范围 | ±2.048V(可编程) | ±6.144V(可编程) |
| 接口类型 | I2C(最大400kHz) | I2C(最大3.4MHz) |
| 工作电压 | 2.7V-5.5V | 2.0V-5.5V |
| 功耗 | 0.4mA(工作) | 0.15mA(连续转换模式) |
| 内置基准 | 2.048V(±0.05%) | 无 |
| 内置PGA | 无 | 可编程增益(1-8倍) |
| 价格(千片单价) | $1.2 | $2.8 |
从表格可见,ADS1115在通道数量、接口速度和PGA配置上更具优势,而CM1103凭借内置高精度基准和更低价格在特定场景中更经济。
注意:实际采样率会受I2C总线速度限制,当使用标准模式(100kHz)时,两款芯片的有效采样率都会降至约30SPS
1.1 架构设计差异解析
CM1103采用Sigma-Delta调制器架构,通过过采样和数字滤波实现16位精度。其核心优势在于:
- 内置低温漂基准源(±10ppm/℃)
- 自动校准电路消除零点漂移
- 单电源供电下支持双极性输入
ADS1115则采用逐次逼近型(SAR)架构,特点包括:
- 可编程增益放大器(PGA)支持1/2/4/8倍增益
- 输入多路复用器支持4单端或2差分输入
- 比较器模式可实现阈值触发
实测数据显示,CM1103在50Hz工频干扰环境下的信噪比(SNR)可达86dB,而ADS1115在启用PGA后SNR会下降约3dB。这源于Sigma-Delta架构固有的抗干扰能力。
2. 典型应用场景对比
2.1 CM1103的优势场景
CM1103特别适合以下应用:
- 电池供电设备:0.1μA的待机电流显著延长续航
- 高精度测量:内置基准源确保±0.05%的增益误差
- 温度采集系统:直接连接PT100无需额外基准
- 成本敏感项目:BOM成本降低约40%
典型电路配置示例:
c复制// 初始化配置(2.048V范围,连续转换模式)
void CM1103_Init() {
i2c_write(0x48, 0x01, 0x8A00); // 配置寄存器:860SPS, ±2.048V
i2c_write(0x48, 0x02, 0x0001); // 校准寄存器:启用自动校准
}
2.2 ADS1115的适用领域
ADS1115在以下场景表现更佳:
- 多传感器采集:4通道轮询节省MCU资源
- 小信号放大:PGA可检测最低±0.256V信号
- 高速触发应用:比较器模式响应时间<100μs
- 工业现场总线:3.4MHz I2C速率适合长距离传输
其灵活配置示例:
python复制# Python配置差分输入+PGA
ads1115 = ADS1115(i2c_addr=0x48)
ads1115.set_gain(GAIN_EIGHT) # 8倍增益(±0.256V)
ads1115.set_continuous(0) # 单次转换模式
ads1115.set_mux(MUX_DIFF_0_1) # 差分通道0-1
3. 硬件设计注意事项
3.1 CM1103布局要点
- 基准源引脚需接1μF陶瓷电容(X7R材质)
- 输入阻抗100kΩ,建议串联100Ω电阻限流
- 电源轨需加10μF+0.1μF去耦电容
- I2C走线长度超过10cm时要加330Ω端接电阻
3.2 ADS1115设计技巧
- PGA启用时避免输入超过VDD+0.3V
- 多通道切换后等待3ms再采样
- AIN3通道内部有100kΩ下拉电阻
- 采用星型接地减少通道间串扰
实测案例:在4层板设计中,CM1103的INL(积分非线性)典型值为±2LSB,而ADS1115在8倍增益下会恶化到±5LSB。这要求对微小信号测量时需特别关注PCB布局。
4. 软件驱动实现差异
4.1 数据读取时序对比
CM1103采用标准I2C读取流程:
- 发送设备地址(0x48)
- 写入配置寄存器(2字节)
- 等待转换完成(DRDY引脚或延时)
- 读取数据寄存器(2字节)
ADS1115支持两种模式:
- 单次转换:配置后自动开始转换
- 连续转换:配置CONFIG寄存器的MODE位
关键区别:CM1103每次转换需重新触发,而ADS1115在连续模式下会自动启动下一次转换
4.2 校准算法实现
CM1103内置校准无需软件干预,而ADS1115需要手动校准:
c复制// ADS1115两点校准示例
void calibrate_ADS1115() {
float gain = (raw_high - raw_low) / (v_high - v_low);
float offset = raw_low - v_low * gain;
// 存储gain和offset用于后续补偿
}
实测数据显示,未校准的ADS1115在-40°C~85°C范围内会有±50LSB的漂移,而CM1103通过自动校准可将漂移控制在±10LSB内。
5. 故障排查与优化
5.1 常见问题速查表
| 现象 | CM1103可能原因 | ADS1115解决方案 |
|---|---|---|
| 读数跳变大 | 基准源电容失效 | 检查PGA是否过载 |
| I2C通信失败 | 地址冲突(默认0x48) | 尝试调整I2C上拉电阻 |
| 采样值始终为0 | 输入超出量程 | 检查MUX配置是否正确 |
| 温度漂移明显 | 自动校准未启用 | 执行两点校准 |
5.2 性能优化实践
CM1103优化技巧:
- 定期读取0x02寄存器校验校准状态
- 在高温环境下每8小时触发自动校准
- 使用硬件DRDY引脚中断替代轮询
ADS1115优化建议:
- PGA增益选择遵循"1/3满量程"原则
- 单次模式转换后立即进入休眠
- 多通道采样时插入5ms延时
在太阳能电池板监测系统中,采用CM1103+PT100的方案比ADS1115+外部基准的BOM成本降低22%,且温漂指标提升3倍。但需要牺牲多通道支持的灵活性。
