检查RTC上的备用电压会耗尽备用电池吗?


8

我正在开发一个ATMega项目,该项目将节省时间,因此我正在尝试使它具有软件时间(基于millis()),DS1307或DS3231(ChronoDot)RTC的选项。

最基本的说,我想做的是提供一个可焊接的ChronoDot头,然后用某种方式在软件中检测是否已连接ChronoDot并切换为使用它。通常,检查DS1307或DS3231是否存在(因为它们使用相同的I2C寄存器)通常很容易,但是在进行最初的检查后,它们之间确实确实有些偏离,并且后者具有更多功能。所以我仍然想确定连接了哪个。通常,我计划直接在板上放置一个作为默认选项的DS1307焊料,而DS3231支持将仅通过双4引脚接头连接器提供完整的ChronoDot。ChronoDot本质上适合DS1307正常运行的地方(在这种情况下不会填充)。我特别关注ChronoDot的主要原因是它 它很流行,易于获取,并且对于最终用户不需要SMD焊接(如果是套件的话)。所以,这就是我在想...

DS1307和DS3231的芯片上都有一条Vbat线,但实际上并不需要任何东西。但是,ChronoDot的分线板上有一个实际的VBat引脚。我可能只能连接ChronoDot接头连接器上的Vbat,而不连接DS1307,并将其连接到我ATMega上的数字输入引脚。但是该输入引脚是否已通过电阻下拉至地(不确定该值是多少……也许是4.7k?)。如果我的EE理论是正确的,那么我可以读取该引脚,如果我的电平低,则没有计时码字;但是如果我的电平高,则存在。

像这样:

原理图

模拟此电路 –使用CircuitLab创建的原理图

我的主要问题是,这样做是否会耗尽RTC上的备用电池?通常,在提供5V主电源时,不会从备用电池汲取电流,但是将其连接到数字输入是否会一直从电池获取电能?或者,可以说,有一种我需要在从引脚读取后将其插入以使其“断开连接”的模式吗?我知道我可以将其更改为输出,但是我相信,如果将其设置为输出并且设置为低电平,则基本上可以将电池接地。

无论如何,我的EE课程是很久以前的。在此理论上的任何帮助将不胜感激。

Answers:


8

您肯定会通过电阻耗尽电池电量。您将汲取的电流量将由欧姆定律控制:I = V /R。假设您的电池电压为3V(即通常的chronodot Vbat)。使用4.7 kOhm电阻器,您将连续汲取3/4700 = 638微安。如果使电阻为1 MOhm,则将消耗3/1000000 = 3微安。而且,如果您使电阻为10 MOhm,则将消耗3 / 1e7 = 300纳安。

选择的电阻值越大,连续消耗的电流就越少,但数字引脚转换所花费的时间就越长(请考虑R * C时间常数,该常数由引脚和走线的电阻以及电容决定)。只要在启动后等待足够长的时间(或定期检查),就可以使用10 MOhm的电阻器。从理论上讲,您也可以以更大的值拾取更多的噪声(因为它开始看起来越来越像开路),但是我认为您会好的。我什至可以考虑提高到100 MOhm。

典型的CR1632拥有130毫安小时(mAh)的能量存储,其中80%的使用寿命是可能的,因此,为了便于计算,可以将其称为100 mAh。然后,您的电池寿命的粗略估算为毫安小时/毫安。

  • 如果使用4.7 kOhm电阻,则100 / .638 = 156小时= 6.5天
  • 如果使用1兆欧的电阻器,则100 / 0.003 = 33333小时= 3.8年
  • 如果使用10 MOhm电阻器,则100 / 0.0003 = 333333小时= 38年

这些是上限数字,它们假定系统的其余部分不消耗功率。它们代表系统关闭时的寿命,而电池只是通过电阻消耗掉。还有许多二阶效应未被考虑(电压衰减,内部电池泄漏化学性质等)。根据您希望达到的使用寿命,电阻不太可能成为您的最大问题。


h ...不敢相信我忽略了我直接将电池接地的事实:P是否有其他建议可用于此目的?
亚当·海尔

我认为您的方法很好,如果电阻足够大,泄漏电流不会显着影响您的电池寿命,我将提供更多数学信息。
vicatcu 2013年

1
支持:回答主要问题。@AdamHaile您可能会发现一种有用的技术:数字电压表使用的FET呈现的电阻的等效漏极微不足道,单位为欧姆或欧姆。
shimofuri

1
@AdamHaile一件简单的事...我注意到您的评论,您的系统在另一条评论中为5V。请注意,您的数字电压输入高阈值足够高,足以用尽一块耗尽的电池(对于
CR1632,它

1

几乎所有涉及电阻的测量方案中的任何一个,如果保持永久连接,都会导致不可接受的电流消耗,并降低为这些设备供电的小型锂电池的寿命。

因此,解决方案是在实际进行测量时,仅在不频繁的时间间隔内短暂地使测量电路汲取电流。

对于数字测试,这就像使用内部的,软件可配置的下拉菜单一样简单,并且仅在测试周围的短时间内将其配置为下拉菜单。但是,当进行测量的MCU未上电/处于睡眠模式时,您将需要研究在引脚上施加电压的可能的复杂情况。

模拟测量将变得更加棘手,但是可以应用类似的想法。例如,您可以将(相对于I / O的高阻抗)分压器的下部电阻器连接至输出引脚,并仅在测量期间将其拉低。或者,您甚至可以用一个小的低泄漏电容和一个I / O引脚构建RC电路,然后将其驱动为低电平作为输出,然后配置为模拟输入并在一段时间后测量电压。如果设备的数字阈值电压一致(请注意温度!),您甚至可以通过测量电容器充电至阈值电压所花费的时间,使用数字输入进行模拟测量。


嗯...我希望可以做内部下拉电阻,但可惜只有内部上拉电阻。我可能正在尝试使事情复杂化。必须桥接以使用一种模式或另一种模式的焊盘可能是可以接受的。
亚当·海尔2013年

您可以使用一个电阻连接到另一个I / O引脚来进行自己的软件可配置下拉。或者,您可以使用RC电路原理,驱动相同的引脚,然后将其重新配置为要测量的输入。
克里斯·斯特拉顿

实际上,使用内部下拉菜单是一个非常糟糕的主意。I / O引脚通常通过二极管连接到Vdd和GND,以防止引脚电压偏离电源电压。当芯片未上电时,该引脚基本上将通过两个并联的二极管连接到GND,并且施加超过二极管阈值电压的任何电压都会导致很大的电流。一个更好的主意是使用一个串联的PMOS晶体管,其栅极由NMOS晶体管接地。当微控制器不通电时,这将使泄漏最小化。
alex.forencich 2014年

1

DS3231具有可读取的内部温度。您可以通过I2C发出命令来读取温度,如果收到响应,则说明您拥有DS3231,如果没有,则说明您拥有DS1307。


1
我认为这不会以任何方式回答问题。
shimofuri

我认为是的。OP中的Adam想要确定DS3231或DS1307是否已连接到他的电路。他正在考虑尝试使用vbat销进行此操作。我建议他通过查看设备是否将恢复温度来完成此操作。在我看来,它应该可以正常工作。
Scott Goldthwaite

我认为这确实解决了问题:不是所提出的问题,而是根本的问题说明。有趣。如果充实一点,并添加引用,将使我感到欣慰。
Anindo Ghosh

Maxim数据表中请参见第11页的图1。图中显示了内部温度寄存器(11&12)。
Scott Goldthwaite 2013年
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.