电路很简单,这次主要是选型和设计方法。
image.png

要点一:设定分压电阻的大小

电池电压经过电阻R26和R62分压之后,给到主控芯片MCU的ADC引脚,通过ADC来侦测电池电压。
为什么要分压?因为ADC引脚可直接侦测的电压范围没有4.2V这么高。
在R62远远小于MCU的ADC引脚的输入阻抗的情况下,可以忽略ADC引脚的输入阻抗,这也是我们需要的。
下面忽略ADC引脚的输入阻抗来计算两个电阻的分压,也就是:
侦测到的电压 = 电池电压 x R62 / (R26 + R62)
侦测到的电压 = 电池电压 x 150 / (300 + 150)
侦测到的电压 = 电池电压 x 1 / 3
image.png
电池电压 = 侦测到的电压 x 3
查看MCU的数据手册,可以查到ADC引脚的输入阻抗。
为了忽略ADC引脚输入阻抗的影响,R62要尽可能相对地小。
但又不能太小,因为这个电路会一直消耗电池的电量,就算是关机状态下也一直在耗电。
电阻太小会导致关机功耗变大,这里消耗9.3uA:
image.png

要点二:降低纹波电压

为了精确测量电池电压,ADC引脚处的纹波电压要小。
这里用了电容C32来滤波:
image.png
为了避免受到干扰,ADC引脚的走线要尽量短,远离干扰源,走线包地处理。ADC引脚处的走线高亮显示如下(这个MCU是BGA封装):
image.png
这里的走线不算短,不过经测试纹波电压小于50mV,满足要求。

要点三:设定关机电压

阅读器配套的锂电池,充满电是4.2V。
在电压降到3.5V时,经实际测试,阅读器的系统电压还能保持稳定,但继续放电容易导致死机,所以设定3.5V为关机电压。
参考一款锂电池的放电曲线图,以1A电流放电时,一开始放电曲线很平缓。放电到3.5V再往后一些,蓝色的放电曲线呈陡涯式下降,这就是为什么电压变得不稳定了。见下图蓝色曲线的最右侧那一段:
image.png
根据这款产品的实际测试情况,软件设定为当侦测到电池电压降到3.5V时,系统执行关机。也就是:
电池电压为4.2V时,屏幕显示电量为100%;
电池电压为3.5V时,屏幕显示电量为0%,并执行关机动作。
有些电子产品本身功耗低,也不会瞬间拉取大电流,就可以在电池电压更低时才关机。

要点四:注意分压电阻的精度

“电池电压侦测电路”的两个分压电阻,后来改为了使用0.1%精度,会更靠谱。
image.png