就像ajs410和Thomas所说的那样,使用二极管压降从5V升至3.3V是一个坏主意。这是因为,尽管您在学校被告知,二极管电压仍然是恒定的。3个二极管压降可能为您提供大约2.3V至3.2V的任何电压,这对于 C或SD卡而言可能会或可能不会太低。
我首先用诸如BAT54的肖特基型取代D4 ,它的典型泄漏电流小于<1 μA。这将为我们额外提供数百mV的缓冲电容器。μ
μ
接下来是3.3V电源。使用低接地电流LDO,如Microchip的MCP1703,它只有2的接地电流 A.(精工S-812C40是我最喜欢的,并具有更好的规格,但似乎有低量的可用性差) μ
然后,您要检测5V电源的损耗。为此,我通常使用MAX809。当其输入电压降至某个阈值以下时,这将产生一个低输出信号。对于5V电源,可以使用4.63V,4.55V和4.38V的阈值电压。MAX809的输出流至您的 C的中断引脚,因此当5V下降时,您会立即得到警告,并且可以将缓冲器无延迟地写入SD卡。 μ
现在仅剩1点:缓冲电容器的大小。您需要知道在写入SD卡时从3.3V电源消耗多少电流。假设这是20mA。当汲取恒定电流时,电容器电压将线性降低:
ΔV=I×tC
要么
C=I×tΔV
进一步假设您需要100毫秒将缓冲区写入SD卡。然后剩下的唯一变量是。我们从5V减去1个肖特基二极管压降开始,得到4.5V。MCP1703的最小压降为725mV,因此我们可以降至4V,并且 = 0.5V。然后ΔVΔV
C=20mA×100ms0.5V=4000μF
现在,我使用的值是粗略的估计值,您必须使用正确的数字进行计算,但是该估计值表明,即使您确实拥有严重的安全裕度,您甚至可能根本不需要0.5F的超级电容。例如,您将有10s而不是100ms的时间将缓冲区刷新到SD卡。
(精工S812C的压差仅为120mV,因此,这将使您允许的电压下降值加倍,从而使您的可用时间增加一倍。)