4. 电压采集通道测试

电压采集通道,说白了就是BMS的“眼睛”。

眼睛要是花了,看什么都模糊。电池包里的每一节电芯电压,都得靠它来感知。我见过不少项目,最后出问题都出在电压采集上——不是精度不够导致SOC跳变,就是共模干扰让保护误动作。

所以这一章,咱们把电压采集通道的三个核心测试掰开揉碎了讲。

4.1 单体电压精度校准

先问个问题:你手里的万用表测出来3.500V,BMS读出来3.512V,差了多少?

12mV。对于磷酸铁锂来说,这已经能影响5%以上的SOC估算误差了。

为什么要校准?

芯片有失调电压,电阻有温漂,PCB走线有压降。这些误差叠加起来,不校准根本没法用。我个人习惯,在产线校准阶段,至少做两点:

  • 零点校准:输入端短路,记录ADC读数的偏移量
  • 满量程校准:输入一个精密参考电压,计算增益误差

校准公式其实很简单:

V_real = (ADC_raw - offset) × gain

但实际做的时候,有个坑——温度系数。我在项目中遇到过,常温下校准完精度0.5mV,到了-20℃直接漂了5mV。后来我学乖了,至少做三个温度点的校准:-20℃、25℃、60℃。

我的建议: 如果芯片支持内部校准寄存器,尽量用硬件校准。软件校准虽然灵活,但每次上电都要跑一遍,增加启动时间。

测试方法也不复杂。用精密电压源(精度至少比被测高一个数量级)输出几个典型值:

测试点 输入电压 (V) 允许误差 (mV) 典型实测值 (mV)
1 2.000 ±2 1.998
2 3.000 ±2 3.001
3 3.650 ±2 3.649
4 4.200 ±2 4.202

嗯,这里要注意:测试时线缆要尽量短,用开尔文连接法(四线制)能消除接触电阻的影响。

4.2 共模电压抑制比测试

共模电压抑制比,英文叫CMRR。这词听起来高大上,其实意思很简单:当所有通道的电压一起升高时,你的测量结果还能不能保持准确?

你想想看,电池包里电芯是串联的。第1节电芯的负极是0V,正极是3.6V。但第10节电芯的负极可能是32.4V,正极是36.0V。这时候,采集第10节电芯的芯片,输入端对地的电压高达30多伏。

这就是共模电压。如果芯片的CMRR不好,测出来的电压就会跟着共模电压一起漂。

测试方法:

  1. 把所有通道的输入端短接在一起
  2. 施加一个共模电压(比如从0V到最大电池电压)
  3. 记录每个通道的输出变化

CMRR的计算公式:

CMRR (dB) = 20 × log10(ΔV_cm / ΔV_out)

其中ΔV_cm是共模电压变化量,ΔV_out是输出变化量。

我曾经踩过的坑: 有一次测试CMRR,发现某个通道的抑制比特别差。查了半天,原来是PCB布局时,该通道的采样电阻离大电流回路太近,地平面被干扰了。后来把采样电阻挪开,CMRR直接提升了15dB。

一般来说,BMS用的AFE芯片CMRR应该在80dB以上。低于60dB的,基本没法用。

4.3 通道间串扰测试

串扰,就是隔壁邻居在吵架,你这边听得一清二楚。

在BMS里,通道间串扰表现为:当某一节电芯电压剧烈变化时,相邻通道的读数也跟着波动。

为什么会这样?

原因主要有两个:

  • PCB走线耦合:相邻采样线之间的寄生电容,高频信号会串过去
  • 多路复用器漏电:AFE芯片内部切换通道时,电荷会残留

测试方法其实很直观:

  1. 让被测通道(比如CH1)输入一个固定电压(如3.6V)
  2. 让相邻通道(CH2)输入一个跳变电压(如从2.0V跳到4.0V)
  3. 观察CH1的读数变化

我一般用示波器同时抓两个通道的波形,看CH1在CH2跳变瞬间有没有毛刺。

判定标准: 串扰引起的误差不应超过单体电压精度要求的1/3。比如精度要求±2mV,串扰误差应小于0.7mV。

如果发现串扰超标,怎么办?我分享几个经验:

  • 增加采样间隔:让通道切换后有足够的建立时间
  • 加屏蔽:在PCB上,敏感采样线之间加地线隔离
  • 软件滤波:做中值滤波或滑动平均,但注意别把真实信号也滤掉了

记得有一次,一个项目串扰怎么都压不下去。后来发现是AFE芯片的参考电压引脚滤波电容太小,导致内部基准被干扰。换了个10μF的电容,问题就解决了。有时候,问题不在你盯着的地方。

小结

电压采集通道测试,说白了就是三件事:

  • 精度校准:让读数准,别差太多
  • 共模抑制:高压环境下也能稳住
  • 串扰控制:各通道之间别互相影响