国产高精度ADC BH45B1225实测:2块钱的24位ADC在CH32上性能到底如何?
2026/6/14 2:42:01 网站建设 项目流程

国产高精度ADC BH45B1225深度评测:2元24位ADC在CH32平台的实际表现

在嵌入式传感器应用中,ADC(模数转换器)的性能往往决定了整个系统的测量精度上限。当一颗标称24位分辨率的ADC芯片仅售2元时,工程师们难免会产生两个疑问:这样的价格是否意味着性能缩水?它能否真正满足高精度测量需求?我们以合泰半导体BH45B1225为测试对象,在CH32V103开发平台上展开了一系列实测。

1. 测试环境搭建与方法论

1.1 硬件配置方案

测试平台采用CH32V103C8T6作为主控,其内置12位DAC用于生成基准电压信号。关键连接方式如下:

部件连接方式备注
BH45B1225 VDD3.3V线性稳压供电采用LT3045超低噪声LDO
模拟地独立铺铜区域单点接地避免数字噪声耦合
CH32 DAC输出经RC滤波后接入AN0截止频率10Hz的二阶滤波器

为评估ADC的噪声特性,特别设计了三种测试场景:

  • 静态测试:DAC输出固定直流电压
  • 动态测试:DAC输出10Hz正弦波
  • 干扰测试:在信号线上叠加50Hz共模干扰

1.2 软件实现要点

基于官方驱动代码进行优化,关键改进包括:

// 增强型数据采集流程 float get_enhanced_sample(uint8_t oversample) { float sum = 0; for(int i=0; i<oversample; i++){ while(!BH45B1225_EOC_FLAG()); // 硬等待转换完成 sum += BH45B1225_Get_Data(); BH45B1225_WriteReg(BH45B1225_ADCR0, 0x82); // 触发新转换 } return sum / oversample; }

采样策略对比:

  • 单次采样:直接读取原始值
  • 16倍过采样:显著降低白噪声影响
  • 滑动窗口滤波:适合动态信号采集

2. 关键性能指标实测

2.1 有效位数(ENOB)验证

在10SPS采样率下,对1.0V直流信号进行1000次采样,得到噪声分布:

统计量单次采样16倍过采样
标准差(μV)18.74.2
峰峰值(μV)15635
计算ENOB(bits)20.121.3

注意:实测ENOB与标称21.5位存在差距,但在2.5V量程下仍优于18位商用ADC

2.2 工频抑制能力测试

人为注入50Hz、10mVpp干扰时,不同配置下的抑制效果:

# 工频抑制率计算 def rejection_ratio(clean_signal, noisy_signal): fund_power = np.fft.fft(clean_signal)[50] # 50Hz分量 noise_power = np.fft.fft(noisy_signal)[50] return 20*log10(fund_power/noise_power)

测试结果:

  • 未启用陷波:-42dB抑制
  • 启用内部陷波:-68dB抑制
  • 软件后处理:可达-85dB

2.3 温漂特性分析

将芯片从25℃加热至85℃,观测内部基准电压变化:

温度(℃)基准电压(V)漂移(ppm/℃)
251.248-
451.247-8.2
651.245-12.1
851.242-15.3

典型应用建议:

  • 对温度敏感场景建议外接基准源
  • 电池供电设备可接受内部基准

3. 与竞品对比分析

3.1 同价位ADC横向对比

型号分辨率ENOB采样率接口价格
BH45B122524位20.1位10SPSI2C¥2.0
ADS111516位15.5位860SPSI2C¥3.5
HX71124位19位80SPS串行¥1.8

3.2 应用场景适配性

推荐使用场景

  • 低速高精度测量(电子秤、压力检测)
  • 电池供电的便携设备
  • 需要工频抑制的工业传感器

不推荐场景

  • 多通道快速轮询
  • 宽温范围无人值守设备
  • 需要22位以上真实精度的场合

4. 实战优化技巧

4.1 硬件布局要点

  • 模拟电源走线宽度≥0.3mm
  • I2C信号线并联100Ω电阻+22pF电容滤波
  • 基准电压引脚添加1μF+100nF去耦电容

4.2 软件校准方案

// 三点校准算法实现 void calibrate_adc(float low, float mid, float high) { float gain = (high - low)/(get_reading(high)-get_reading(low)); float offset = mid - gain*get_reading(mid); save_cal_params(gain, offset); }

常见问题处理:

  1. 数据跳动大:检查电源纹波,建议改用LDO供电
  2. I2C通信失败:确认地址配置,NSOP封装有不同地址映射
  3. 转换超时:检查OSC稳定标志位,必要时延长初始化延时

这颗2元ADC在合理优化后,完全能满足多数消费级高精度测量需求。实测中发现其内部基准的初始精度优于标称,但长期稳定性需要定期校准。对于预算有限却又需要24位分辨率的设计,不失为一个务实的选择。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询