测量锂离子电池电压(因此剩余容量)


14

我正在使用的工具:我正在以3.3V运行自己制作的Arduino板(在某种意义上,我使用Arduino引导加载程序和代码编辑器),并且由锂离子电池供电,该锂离子电池由相应的Microchip进行USB充电充电器IC。

我要达到的目标:我想每分钟左右测量一次电池容量。我装有LCD,因此其想法是整体设置可以让我知道电池在给定时刻的运行情况。电池的数据表中有一条电压与放电水平的关系曲线,因此,通过测量电池的电压,我可以估算出剩余容量(非常粗略,但对我来说已经足够了!)。

我做了什么:

  • (编辑:根据@stevenvh和@Jonny的建议更新了电阻值并添加了P-MOSFET开关)。

  • 我用电池V_plus连接了一个分压器,其中较大的“部分”连接至Arduino / Atmega芯片上的模拟读取引脚(即ADC)。

  • 分压器为33 KOhm至10 KOhm,因此可以通过我的3.3V电平微控制器测量最大4.1伏的锂离子电池。

  • 另外,使用连接到n沟道MOSFET的I / O引脚之一,仅在需要测量时,我才可以切换通过分压器的电流。

  • 这是一个粗略的示意图(根据@stevenvh和@Nick的建议第二次更新):

在此处输入图片说明

我的问题:

  • 我当前的设置如何?

  • 我唯一的限制是:(1)我想根据电压读数粗略地测量电池容量,如上所述。(2)我想防止分压器干扰充电IC的电池存在读数(在我的原始设置中,即使没有电池,分压器有时也会导致IC误读存在)。


1
“我使用了较大的电阻值”。输入引脚可能有泄漏电流,典型的最坏情况是1 uA。当通过分压器的电流较小时,这可能会使读数失真。
stevenvh 2012年

因此,我希望通过分压器的电流小,但又要足够大,以使其至少比最大泄漏电流高一个数量级。
boardbite

或使用FET来打开和关闭分压器,就像我在这个类似问题的答案中所建议的那样。
stevenvh 2012年

在分压器处于关闭“状态”的情况下,将FET放在适当的位置,您是否认为这还可以解决充电器IC误读电池存在的问题?(顺便说一句,那个人今天也发布了这个问题也是一个巧合!)
boardbite'Sep

1
您在错误的一面有错误的FET。如果您将其关闭,由于R1不会汲取电流,因此全电压将在输入引脚上。您需要在高端使用一个P-MOSFET,以便将其关断会将I / O引脚接地。
stevenvh 2012年

Answers:


12

在此处输入图片说明

这似乎与Nick的原理图非常相似,可能是在他发布:-)时忙于绘制它。

首先,为什么不能在高端使用N-FET:它需要一个比源极高几伏的栅极电压,而您只有4.2 V,没有更高的电压,因此这是行不通的。

我的上拉电阻值更高,尽管100kΩ的电阻值也可以。测量时,10kΩ会产生不必要的400 µA额外电流。并非世界末日,但在两种情况下均为1电阻,所以为什么不使用更高的值。

对于MOSFET,鉴于要求不是很严格,因此有很多零件可供选择。可以考虑便宜的那些,如,例如,Si2303为P沟道和BSS138为N沟道。


感谢您的正式答复!我想我可以想到这种特定组合的几种用途。基于此,我已经在问题中更新了示意图。并欣赏N-FET的解释。
boardbite

您会建议在这里使用一个适合的N沟道MOSFET(理想为SMD类型)的示例吗?IRF530看起来很大而且也不便宜。(对于P通道,我看到Si2303带有SMD,因此已经处理好了。)
boardbite 2012年

1
@Inga-您不需要电流,因此导通电阻不是那么重要。只需看一下栅极的阈值电压即可:它应该在3.3 V时导通,但是即使那样它也不必吸收任何电流,因此还有很多选择。该BSS138是最便宜的我能找到一个,而且会很好地做。
stevenvh 2012年

7

@Inga。这更多是评论而不是答案。但是我想发布一张图片,所以我将其发布为答案。

您的微控制器(uC)由+ 3.3V供电。建议的P-MOSFET的漏极可以高达+ 4.1V。如目前所绘,+ 3.3V逻辑信号将无法完全关闭P-MOSFET。下图中的Q6形成了一个开漏输出,可承受+ 4.1V的电压。

C14降低阻抗,您的A / D将会看到。

在此处输入图片说明

电池电压(因此剩余容量)

您可能会发现,检测电池电压不是检测剩余电量的准确方法。在便携式设备(手机,笔记本电脑)中,电池容量是通过测量流入和流出电池的电流来估算的。有数十种专用电池电量计IC(例如bq27200)可以帮助完成此任务。

为什么不在低端使用一个N沟道MOSFET,在高端使用两个电阻分压器呢?
[来自下面的评论]

当电池电压(V bat)大于微控制器的电源电压(V cc)时,低端开关会出现问题。当低压侧开关断开时,分压器的接地端悬空,分压器不再分压,满电池电压出现在微控制器的ADC引脚上。这会损坏uC。它还会产生泄漏路径,电池将通过该泄漏路径放电。
当V bat > V cc时,需要一个高端开关。

1 我将简短地使用V cc,但是该讨论也适用于V dd,AV cc,AV dd。如有疑问,请在数据表中查找。


谢谢尼克!这是有道理的,并且我已经更新了原理图(可以选择燃油表,但是我也在尝试学习一些基本的电子技术和实验,因此是分压器的想法)
boardbite 2012年

为什么不在低侧使用单个N Mosfet,在高侧使用两个电阻分压器?无法看到为什么需要使用N Mosfet来驱动P Mosfet
Luis Carlos

1
@路易斯我已经编辑了答案,并将回复添加到了您的评论中。
尼克·阿列克谢耶夫

4

Ad.A:我认为使用一个简单的分压器来检测电池电压就足够了。虽然,您应该谨慎选择阻力。根据ATmega328数据表,ADC输入的内部阻抗为100kΩ 。请参见“图23-8。模拟输入电路”。如果分压器的阻抗与ADC输入的阻抗相当,则ADC输入电路的行为基本上与分压器中的另一个节点类似。它可能会给您ADC读数的偏差。

在整个电源线上使用高达10kΩ的分压器将足以忽略ADC输入阻抗,而仅消耗410µA。如果这对于您的应用来说太多了,您当然可以选择更大的电阻,但是请记住,ADC在那里并且已连接到Vcc / 2。


这种解释是有道理的。可以肯定的是,0.4 mA不是那么多!我只是想尽可能地做到理想:)您是否对为什么使用该分频器可能会影响我的充电器IC上是否有电池的读数有任何猜测?
boardbite

我的猜测是分压器所在的正极电池引脚与USB的+ 5V之间仍然存在连接。我不知道您的特定电路,但是我敢肯定,如果您看一下Arduino原理图,就可以得出结论。
Jonny B 2012年

我敢肯定,如果您遵循stephenh的想法,即在必要时使用FET连接/断开分压器,那么一切都会变得很笨拙。MOSFET的电阻对于分压器而言可以忽略不计。您可能需要另一个ADC来监视USB是否已连接。
Jonny B

谢谢; 我已经根据两个建议更新了问题,并添加了示意图。就USB供电监控而言,充电IC也已经具有状态输出!
boardbite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.