在微控制器电路中使电池持续很长时间

电器工程 微控制器 电池 设计 服装 低电量
2022-01-17 16:58:37

我希望用一些小电池(可能是纽扣电池)为 ATtiny85V 供电很长一段时间。

我查看了软件方面,我的代码是看门狗定时器驱动的,关闭了未使用的模拟和数字转换器,芯片运行在 1MHz 等。当然在这方面既忙又新,我不确定它正在绘制多少电流,但我希望我基本上已将其最小化。

每隔几秒钟,它就会醒来,检查 ADC 的电压电平,将其记录到内存中,然后重新进入睡眠状态。如果它检测到连接了串行线,则会将数据喷出。

但是,现在我将整个电路视为一个整体,并想知道是否应该做一些事情来使整个电路对电池更友好?

在设计一个组件(微控制器)具有重复但可变电流消耗的持久(简单)电路时,基本的注意事项是什么?

例如:

  • 指示灯 LED 很重要吗?亮的时候是不是耗电了?我应该在它上面放一个巨大的电阻使其变暗,还是只是让电阻使用电池?
  • 我应该使用旁路/去耦电容器来平衡电池的电流消耗,还是电容器只会浪费电池的电量?
  • 微控制器只需要 1.8V,但我没有任何 1.8V 电池。我应该使用两节 1.x 电池并发送过多电压吗?我可以通过“不使用尽可能多的电压”来延长电池寿命吗?我怎么做?
  • 检查引脚是高电平还是低电平是否需要额外的功率?与无操作或某些算术相比,在检查其中一个 GP I/O 引脚的状态时是否有更多额外的功耗?

我隐约知道如何计算(更隐约地知道如何测量)电流、电压、功率,但我不太确定哪些东西等同于电池寿命。电池寿命的重要衡量标准是库仑吗?

我有一个模糊的想法,即电池充满了类似的东西:

  • 充电,以安培小时为单位
  • 能量,以瓦特小时为单位
  • 功率,以瓦特为单位

但我不太清楚我的电路在运行时“吃”了什么。我已经阅读了相当多的 EE101 和物理教科书,但我并没有任何实验室经验。换句话说,我读过很多关于电池的文章,但我不确定其中大部分内容在实践中意味着什么。

电阻会耗尽电池寿命吗?做电容吗?做二极管吗?我怀疑他们都这样做,但哪些数字是重要的?阻抗?功耗?当前的?电压?

有没有办法在不浪费电池的情况下降低电压?有没有办法降低电压同时延长电池寿命?

4个回答

只是一个随机列表,如果您发布原理图可能会更容易:

1.8V 锂纽扣电池很容易找到,但您的串行接口更可能需要 3.3v?除非你的接收端会处理 1.8V。

漏电流通常会随着电压的增加而增加,因此通常越低越好。还要考虑系统的欠压点与电池特性。电池的“死亡”特性将取决于您使用的电池化学成分。例如,如果您的 uC 在 1.7V 时变暗,您实际上可能想要使用更高电压的电池,因为对于某些电池,输出电压会随着电池耗尽而缓慢降低。您可以从 3.3V 电池中获得更多寿命,因为当它开始耗尽时,它的输出会慢慢下降,您可以一直运行到 1.8V。如果您使用 1.8V 电池,您将在电池耗尽时很快关闭。这一切都假设您的串行接口或其他组件可以处理很宽的电压范围(我知道 AVR 可以)。

LED 会消耗大量功率,除非您使用功率非常低的 LED 并控制其电流消耗,否则它可能会消耗比 AVR 更多的电流。如果它只是用于调试,请不要将其填充用于生产或仅让它偶尔闪烁一次或以最小化其准时的方式,并绝对控制其电流消耗。

如果可以的话,选择串行接口的极性/静止状态以尽可能少地消耗功率,它的静止状态不应该是消耗功率。如果需要上拉电阻,请使用尽可能大的电阻来保持信号完整性,同时尽量减少电流使用。如果功率是一个巨大的问题,请使用一个有利于不消耗功率的位的信号方案。例如,如果您有引体向上,使用导致信号中有大量 1 的协议将使串行接口处于大多数时间不消耗太多功率的状态。仅当您大量使用串行总线时,此类优化才值得。如果它使用得非常轻,只需确保它的静止状态没有消耗电力。

一般来说,您可以假设所有指令(读取 GPIO 等)都需要相同的功率。这不是真的,但功率差异很小。

电源使用更多地取决于您打开的外围设备的数量/类型,以及微机处于活动状态与睡眠状态的时间量。因此 ADC 使用更多功率,EEPROM 写入使用相当多的功率。具体来说,像 EEPROM 写入通常是在相当大的“块”中完成的,因此您应该在写入 EEPROM 之前尽可能多地积累信息(当然,如果您甚至使用它)。对于 micro 支持在其 2 个睡眠状态期间执行 ADC 读取的 ADC,因为 ADC 转换需要相对较长的时间,这是睡眠的好时机。

您可能应该只阅读微控制器数据表中有关电源管理、睡眠状态和最小化功耗的部分:linky page 35 on。尽可能长时间地让 AVR 处于最深的睡眠状态。唯一的例外是您必须考虑启动和关闭时间。如果醒来需要 25 个周期,那么睡 10 个周期是不值得的,等等。

电阻会耗尽电池寿命吗?做电容吗?做二极管吗?

他们都在某种程度上做到了。电阻器在大多数应用中耗散最多:

P = V*I

P = V^2 / R 或 P = I^2 * R(其中 V 是电阻两端的电压降)

二极管具有(相对)固定的压降,因此功耗几乎完全与通过二极管的电流有关。例如,一个具有 0.7V 正向压降的二极管,如果电流正向流过二极管,则 P = 0.7 * I。这当然是一种简化,您应该根据二极管的 IV 特性检查工作模式。

电容器理论上不应该消耗任何功率,但实际上它们具有有限的串联电阻和非零泄漏电流,这意味着它们确实会消耗一些功率,但通常不用担心这么低的电压。话虽如此,选择具有最小泄漏电流和 ESR 的电容器是一种优势。

至于使用它们来平滑电池消耗,这对电力使用并没有真正的帮助,它更多的是用于过滤。电池化学也在这里发挥作用,一些化学物质对持续消耗会更满意,一些化学物质会更好地处理尖峰电流消耗。

马克给出了一个非常出色的答案,并谈到了我要提出的许多观点。我也想贡献一些。

使用带有低欧姆电阻的示波器与返回到电池的公共端串联以进行电流测量。使用微控制器的电流消耗并不简单,而且作为一般规则,仪表太慢了,无法让您很好地了解正在发生的事情。“低欧姆”的含义取决于预期的电流消耗。每绘制 100mA 电流,1 ohm 电阻器就会产生 100mV,这对你来说可能太多了。我会尝试一个 10 欧姆 1% 或 0.5% 的电阻;你会看到每 10mA 的电流消耗 100mV。18 欧姆每 5.5mA 将为您提供 100mV。如果你真的想要低功耗,你可能会用 1k 侥幸逃脱;I=V/R:每消耗 100uA 电流,您就会看到 100mV。不过要小心;如果你汲取足够的电流,你最终会在分流器上下降太多,你的测量就会关闭,更不用说电路可能无法工作。:-)

连接示波器后,为微控制器尝试几种不同的工作频率。您可能会惊讶地发现,时钟速度更高时消耗的功率更少,因为您“清醒”的时间要少得多。

尽可能消除引体向上/下拉。你不应该有任何输出,因为在大多数情况下你可以将它们驱动到空闲状态。正如马克所说,输入应该与有意义的东西联系起来,使用尽可能高的值。

确保您的微控制器尽可能关闭。将未使用的引脚转换为输出并将它们驱动到一个状态(高或低,无关紧要)。不要让 LED 亮着。如果您可以关闭其他组件或停止其时钟,请执行此操作。例如,SPI 闪存通常具有“断电”命令,该命令将消耗已经很低的功耗并将其驱动得更低。

其他人已经谈到了电压方面,我也想对此发表评论。如果您在电池和电路之间使用高效降压/升压稳压器,您最终可能会更好地使用电池。当电池电量高于您需要的 1.8V 时,稳压器将处于降压模式(电压降低),当电池电量低于 1.8V 时,稳压器将切换到升压模式(电压增加)。这将允许您运行电路,直到电池完全没电为止,这是非常值得的,您在使用它们时会损失百分之几的效率。确保根据您要使用的整个范围内的效率来选择调节器,并适当调整调节器的尺寸;一个能够以 98% 的效率提供 1A 电流的稳压器可能以 60% 的效率提供 50mA。仔细阅读数据表。

对于您的电路,我建议在微安范围内使用万用表来测量电流消耗。然后,给定电池特性,您可以计算寿命。它不一定是安培小时/电流,因为电池对于不同的负载会有不同的放电特性。但是,它可以用作近似值。

在 1 MHz 时,我认为您会消耗一些功率 - 至少 100µA,如果 PIC 微控制器可以与之相比的话。但这会被通过你的 LED 的 5mA 到 20mA 所淹没,所以你应该首先摆脱它。

这些天来,有现成的开发套件和分线板非常方便地进行精确的电流测量,在某些情况下低至 nA 范围。如果您还没有明确地查看µCurrent Gold这对于静态测量很有用,但对于随着时间的推移记录测量结果就不那么好了。

您仍然可以使用 µCurrent 的一种方法是将差分放大器连接到输出。然后,您可以将其馈送到示波器或带有模拟输入的逻辑分析仪。我写了一个完整的基本教程,我觉得它可能对预算有限但没有合适工具的人有所帮助。

令人惊奇的是,您不仅可以从电路内部的电压作用中了解到它对电流中每一个小尖峰的反应方式,还可以从中了解到。在选择电池技术和验证测试时,它节省了我几次。😎