使用电容器帮助进行断电保护

电器工程 电源 电容器 缓冲
2022-02-04 05:15:55

我设计的电路会将日志数据存储到 SD 卡中。信息将来自这个插入的父电路。父电路将为我的子卡提供 5V 电压。子卡使用工作电压为 3.3V 的 MCU,所以我只使用了几个二极管将电压从 5V 降下来。

我的挑战是:如果发生电源故障,我希望我的子卡上的 MCU 能够感应到主电源断电,然后立即将数据从它的 RAM 刷新到 SD 卡,然后在它关闭之前进入空闲状态. 写入 SD 卡时,如果在写入过程中断电,可能会导致损坏。

我正在考虑使用一个大电容器来缓冲电源。我知道有一些 MCU 监控器 IC 可以做得非常好,但它们适用于需要保持供电数天的情况。我最多只需要一两秒钟。但我必须小心,不要让 MCU 在电容器功率降至 IC 阈值以下时“闪烁”和关闭。有没有人有示意图或可以提供任何关于我应该如何去做的建议?

这是我到目前为止所拥有的……(0.5F 电容是我的备用电源电容) 替代文字

3个回答

就像ajs410Thomas所说,使用二极管压降从 5V 变为 3.3V 是个坏主意™。那是因为,尽管你在学校被告知,二极管电压绝不是恒定的。3 个二极管压降可能会给您大约 2.3V 和 3.2V 之间的任何电压,这对您来说可能太低也可能不会太低μC 或 SD 卡。
我首先将 D4 替换为肖特基类型,例如BAT54,它的漏电流低 <1μ一个典型。这将为缓冲电容器提供几百毫伏的额外费用。

接下来是3.3V电源。使用低接地电流LDO,例如 Microchip MCP1703,其接地电流仅为 2μA. (精工S-812C40是我的最爱,它的规格甚至更好,但小批量时的可用性似乎很差。)

然后你想检测你的 5V 电源的损失。为此,我通常使用MAX809当其输入电压降至某个阈值以下时,这将产生一个低输出信号。对于 5V 电源,可提供 4.63V、4.55V 和 4.38V 的阈值电压。该MAX809的输出去你μC 的中断管脚,让您在 5V 下降时立即收到警告,您可以立即将缓冲区写入 SD 卡。

现在只剩下一点:缓冲电容的大小。在写入 SD 卡时,您需要知道从 3.3V 电源中消耗了多少电流。假设这是 20mA。当汲取恒定电流时,电容器电压将线性下降:

ΔV=I×tC

要么

C=I×tΔV

让我们进一步假设您需要 100 毫秒来将缓冲区写入 SD 卡。那么剩下的唯一变量是ΔV. 我们从 5V 减去 1 个肖特基二极管压降开始,得到 4.5V。MCP1703 的最小压降为 725mV,因此我们可以降至 4V,并且ΔV= 0.5V。然后

C=20mA×100ms0.5V=4000μF

现在我使用的值是粗略的猜测,您必须使用正确的数字进行计算,但猜测表明您甚至可能根本不需要 0.5F 超级电容,尽管它为您提供了很大的安全余量。例如,您将有 10 秒而不是 100 毫秒来将缓冲区刷新到 SD 卡。

(精工 S812C 的压降仅为 120mV,因此这将使您的允许电压降低加倍,从​​而使您的可用时间增加一倍。)

用二极管降压?呸。使用 3.3V 稳压器。这是正确的做法。您和/或您的客户会很高兴您这样做了。

一般来说,你有正确的想法。使用一个巨大的上限,尽管 .5F 可能有点太大了。

您可以不使用比较器,而是使用分压器并将输出运行到 PIC 的更改时中断引脚之一。设置分压器,使输入在 5V 处于活动状态时略高于最大 Vih。这还有一个额外的好处,即一旦电源被移除,也可以更快地将 5V 拉低。

您也可以尝试使用电池和电源多路复用器。当 5V 消失时,多路复用器将切换到电池供电。 http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=analog&familyId=422&uiTemplateId=NODE_STRY_PGE_T

解决方案是使用微控制器的比较器。

你没有提到你使用的是什么微控制器,所以我们只能猜测它是否真的在芯片上有比较器。如果你的微电脑有电压参考,那就更好了。

但假设确实如此,您可以设置中断以跳转到 ISR。ISR 可以将时钟(如果可能)切换到低功耗程序,然后关闭。如果您以低频率运行,您可能需要更长的时间来执行保存 - 然而,权衡是保存需要更多的周期。