目前在做一个产品,其中用到内置AD测锂电池电压(不可充),电池电压为3.2V,电压信号经过两个5.1M的电阻分压后输入到AD口。发现用万用表测出来的电压与AD所测得电压总是存在一个0.09V的差值。后又将电池断开,接入地模拟电池(0V),发现居然还有1.5V左右的电压。接着我将两个电阻换成10K,AD采样出来的值与实际值完全吻合了(电压表精度不够,前两位对上应该算OK了吧). 造成这种现象,一般来说跟AD的输入阻抗有关。于是查了一下datasheet,发现该芯片的AD最大输入阻抗居然只有350K,晕,居然这么低,难怪会碰到这个问题。既然知道原因,解决的方法也是有的,自己加运放做电压跟随器。但是我有一个疑问,为什么这个ADC的输入阻抗这么低。我查了一下以前用过的Atmega8,他的AD输入阻抗资料上写着最低都有55M啊.提出这个问题的目的是希望大家今后在设计的时候重视这个问题。假如直连AD的话,光这个电路上消耗的电流就是 3.2/350 = 9.14uA, 要知道我们芯片在进入最低功耗模式时才消耗了3.9uA(还包括一块非常省电的静态RAM,所以比资料上的最低功耗要大). 最后附上datasheet上关于ADC输入阻抗的说明:
|