事情是群友发了一个网上看到的锂电池检测电路图,然后认为设计的不合理,电路图如下:

image.png
这个电路设计的原本用意是:单片机(3.3V系统)控制NMOS导通关断,在ADC采集电压时导通,在ADC不采集电压时关断,从而节省掉分压电阻上的电流,从而达到节省功耗的目的
群友们讨论的很激烈,有个群友总结了一下,总结的很到位。
image.png
在群友的分析下,这个电路的缺陷在于
由于3.7V锂电池充满电为4.2V,假设单片机输出3.3V控制NMOS导通,则NMOS的栅极电压为3.3V,此时Vgs等于3.3V-0V=3.3V,然后NMOS导通,然后R12和R16对锂电池分压,分压后,NMOS的源极电压由于电阻分压的关系变成了2.1V,那么此时Vgs等于3.3V-2.1V等于1.2V。然后再看AO3400的数据手册,Vgs(th)是个0.7V~1.4V的范围值。
image.png
那么此时就有两种情况
1.假设0.7<Vgs(th)<1.2V,那么NMOS可以正常维持导通条件,可以正常测量电池电压。
2.假设1.2V≤Vgs(th)≤1.4V,那么NMOS将不满足导通条件。(可能落入恒流区或者截止区,Vds压降变大)。

分析结论:这个电路设计是不合理的。如果这个电路这么设计,由于NMOS的导通阈值电压,第二种情况下(1.2V≤Vgs(th)≤1.4V)会电池电量检测部分异常。

改良

然后有的群友针对分压后源极电压会抬高的问题提出了改良措辞,直接将源极接地,然后这样单片机就可以稳定的控制NMOS了,画了下面这个电路图:
image.png
然后又有个群友对这个改良后的电路图提出了一下质疑,主要质疑点为:
  • 这个电路的阻抗问题
  • ADC端口的耐压问题。
    image.png
    群友也是对这两个问题作出解释,阻抗≈200k//200k≈100k,电池电压的采样速度没有很高的要求,所以没什么问题;然后针对耐压可以换为PMOS
    image.png
    所以针对单片机IO口的耐压问题,电路更改为
    image.png
    然后群友又提出了使用NMOS的改善方法,即在原来电路的基础上更改分压电阻

    两种改良措施:
    • 更换为PMOS驱动控制。
    • 仍使用NMOS,但更改分压电阻。(NMOS便宜)