分压电路设计:参考电压选择、分压电阻计算、自热效应抑制、ADC采样匹配

好,咱们接着聊。上一章讲了NTC的数学模型,这一章要动真格的了——怎么把电阻变化变成电压信号,送给ADC去读。

说白了,NTC就是个电阻。你不能直接把电阻值塞给ADC,ADC只认电压。所以我们需要一个分压电路,把电阻变化翻译成电压变化。

这个环节看着简单,但坑不少。我这些年做体温计项目,至少有三四次因为分压电路没设计好,导致整批产品校准不过关。嗯,咱们一个一个来说。

参考电压选择:别小看这个“基准”

分压电路需要参考电压,也就是Vref。这个电压从哪里来?

我个人习惯,绝不直接从系统电源(比如3.3V)取。为什么?因为系统电源会波动。你想想看,蓝牙一发射,电流突然增大,电源电压掉个几十毫伏很正常。体温计要测到0.01℃精度,这点波动就够你受的。

我的建议是:

  • 使用独立的LDO给模拟部分供电,纹波控制在10mV以内
  • 或者用精密基准源,比如TL431、REF3030这类
  • 如果成本敏感,至少用高PSRR的LDO,并在Vref引脚加10μF+0.1μF去耦电容

我在一个低成本项目中,曾经直接用MCU的3.3V做参考。结果呢?电池从4.2V降到3.0V的过程中,测量值漂了0.3℃。后来换成独立基准,问题就解决了。

注意: 参考电压的温漂系数也很关键。体温计工作环境在0~50℃,如果Vref温漂超过50ppm/℃,那你的线性化做得再好也没用。

分压电阻计算:找到那个“甜蜜点”

分压电路最常见的就是上拉电阻+Rt(NTC)到地。输出电压Vout = Vref * Rt / (R_pullup + Rt)。

这里有个关键问题:R_pullup选多大?

我直接说结论:R_pullup应该选在NTC测温范围中点附近的阻值。

举个例子,体温测量范围35℃~42℃,对应的NTC阻值大约在10kΩ~6.5kΩ(以25℃时10k的NTC为例)。中点大概在38.5℃,阻值约8kΩ。那R_pullup选8.2kΩ(标称值)就很好。

为什么这样选?因为在这个点附近,Vout对温度的变化率最大,也就是灵敏度最高。你想想看,ADC的分辨率是固定的,灵敏度越高,你能分辨的温度变化就越小。

计算公式:

R_pullup = Rt(T_mid),其中T_mid是测温范围的中点温度

实际取标称值,比如8.2kΩ、10kΩ、4.7kΩ等

我曾经犯过一个错:为了省电,把上拉电阻选到100kΩ。结果Vout变化范围只有0.1V,ADC根本分辨不出来。后来改成8.2kΩ,电压摆幅到了0.8V,效果立竿见影。

自热效应抑制:别让NTC自己“发烧”

NTC是电阻,电流流过它就会发热。这个热量会让NTC自身温度升高,导致测量值偏高。这就是自热效应。

体温计测的是人体温度,误差0.1℃就可能误诊。自热效应必须控制住。

怎么控制?

  • 降低流过NTC的电流。我一般控制在100μA以下
  • 间歇式测量。平时关断分压电路,测量时才开启
  • 选择耗散常数大的NTC(比如0805封装的耗散常数约2mW/℃,比0402的好)

举个例子:Vref=3.0V,R_pullup=8.2kΩ,NTC在37℃时约7.5kΩ。那么流过NTC的电流I = 3.0 / (8.2k + 7.5k) ≈ 190μA。NTC上的功率P = I² * Rt ≈ (190μA)² * 7.5kΩ ≈ 0.27mW。

如果NTC的耗散常数是2mW/℃,那么自热温升 = 0.27 / 2 ≈ 0.135℃。嗯,这个值偏大了,需要优化。

我的做法: 把Vref降到1.8V,或者把R_pullup加大到20kΩ,让电流降到100μA以下。自热温升就能控制在0.05℃以内。

另外,我习惯在软件里做补偿。先测一次,等100ms再测一次,如果两次差值稳定,说明自热已经平衡了。不过对于体温计这种需要快速响应的场景,最好还是从硬件上把自热压到最低。

ADC采样匹配:别让信号“白费”

分压电路的输出要送给ADC。这里有几个匹配问题:

  1. 电压范围匹配: Vout的变化范围应该尽量覆盖ADC的满量程。比如ADC参考电压是3.0V,那Vout最好在0.5V~2.5V之间变化。如果只用了0~0.5V,那ADC的分辨率就浪费了。
  2. 输出阻抗匹配: 分压电路的输出阻抗大约是R_pullup // Rt。如果这个阻抗太高(比如>10kΩ),ADC的采样电容充电时间就会变长,导致采样误差。
  3. 采样时间匹配: 给ADC足够的采样时间。我一般设置采样时间≥5μs,对于12位ADC足够了。

我遇到过一个问题:ADC采样结果总是跳变,最后一位不稳定。查了半天,发现是分压电路输出到ADC引脚之间的走线太长,耦合了噪声。后来在ADC引脚加了一个0.1μF的电容,问题就解决了。

ADC匹配检查清单:

  • Vout范围是否覆盖ADC满量程的60%以上?
  • 输出阻抗是否小于ADC输入阻抗的1/10?
  • 采样时间是否足够(至少5倍RC时间常数)?
  • ADC引脚是否有去耦电容(0.1μF靠近引脚放置)?

最后说一句:分压电路设计好了,后面的线性化处理才能事半功倍。别在这个环节偷懒,否则后面校准的时候有你哭的。

下一章咱们讲ADC采样和数字滤波,把信号从模拟域彻底转到数字域。