- 2021-4-16
青春时代是一个短暂的美梦,当你醒来时,它早已消失得无影无踪了。
——莎士比亚
前言
如果要设计一个电池包电压检测电路,并不是直接电阻分压后传入单片机的 AD 检测口就好了,还需要考虑一个问题:检测电路的电阻不能太小,否则如果该电路一直对接着电池包的输出,会一直消耗着电池包的电量,如果长期这样耗着,甚至会导致电池包过放损坏。
本文的电路就是为了应对这个场景,常用在充电器、BMS 等检测电池包的场合,当然,如果类似场景也同样适用。
电路分析
其实就是使用了一个 NMOS 管串联其中,利用 NMOS 管导通时非常小的阻抗和不导通时非常大的阻抗这个特性实现的。
具体分析如下:
当我们不检测电池包电压时,我们希望电池包的电消耗很慢。
所以,我们让对应单片机 IO 口输出低电平时,此时NMOS 管不能导通,表现为一个很大的电阻,最大程度减少电池包电量的损耗。如下图:
当我们要检测电池包电压时,我们让对应单片机 IO 口输出高电平时,此时 NMOS 管 导通,表现为一个很小的电阻,相当于没有,让电阻分压的比例符合设置的比例。如下图:
注意事项
虽然这个电路看起来很简单,但是有一个非常值得注意的地方,就是 NMOS 管的导通压降。
现在常用的单片机电压是 3.3V 和 5V,这里我为什么没有选用 3.3V 呢? 那我们就用3.3V试一下,效果如下:
由结果可知,得到的电压值不对,不符合电阻分析比例,说明 NMOS 管 M1 没有完全导通。
这是是什么原因呢? 查看 BSS123 的规格书,看到关键的导通参数:
意思就是说:只有GS两端电压到达2V以上,才能保证 M1 管彻底导通。
所以很明显了,正常情况下此处的 AD 采样点为1.9V,如果要 Vgsth 要大于2V,需要提供 3.9V 的电压,而此时只有3.3V 显然不够。
如何解决这个问题呢?
- 1、选择IO有 5V 输出的单片机(一般供电电压为5V)。
- 2、如果非要选择3.3V的单片机,可以选择 gs 间导通压降比较小的管子。
或者,增加一个三极管电路放大 3.3V 电压。