¿Comprobar la tensión de respaldo en un RTC agotará su batería de respaldo?

8

Estoy trabajando en un proyecto ATMega que mantendrá el tiempo y estoy tratando de hacerlo para que tenga una opción de tiempo de software (basado en millis ()), DS1307 o DS3231 (ChronoDot) RTC.

En el más básico, lo que me gustaría hacer es tener encabezados para un ChronoDot disponibles para soldar y luego de alguna manera en el software detectar si el ChronoDot está conectado y cambiar a usar eso. Por lo general, sería bastante fácil verificar que DS1307 o DS3231 estén presentes, ya que usan el mismo registro I2C, pero después de esa verificación inicial se desvían un poco el uno del otro y este último tiene más características. Entonces todavía quiero determinar cuál está conectado. En general, planeo tener un lugar directamente a bordo para soldar en el DS1307 como la opción predeterminada y el soporte DS3231 sería con un ChronoDot completo solo a través de encabezados duales de 4 pines. El ChronoDot esencialmente encajaría en el lugar donde iría normalmente el DS1307 (no se poblaría en este caso). La razón principal por la que me estoy centrando específicamente en ChronoDot es que Es popular, fácil de adquirir y no requiere soldadura SMD para el usuario final (esto es para un kit). Entonces, esto es lo que estoy pensando ...

Tanto el DS1307 como el DS3231 tienen una línea Vbat en el chip, pero en realidad no se necesita para nada. Sin embargo, el ChronoDot tiene un pin VBat real en el tablero de conexiones. Tal vez podría conectar solo Vbat desde el encabezado ChronoDot y no el DS1307 y conectarlo a un pin de entrada digital en mi ATMega. Pero, ¿tiene ese pin de entrada tirado a tierra por una resistencia (no estoy seguro de qué valor ... quizás 4.7k?). Si mi teoría de EE es correcta, puedo leer ese pin y si obtengo un bajo, no hay cronodot, pero si obtengo un alto, lo hay.

Algo como esto:

esquemático

simular este circuito : esquema creado con CircuitLab

Mi pregunta principal aquí es si hacer esto terminará agotando la batería de respaldo en el RTC. Normalmente, no se extraería corriente de la batería de respaldo mientras se suministra alimentación principal de 5 V, pero si se conecta a una entrada digital, ¿se extraería energía de la batería todo el tiempo? O, ¿hay algún modo en el que deba colocar el pin después de leerlo para "desconectarlo", por así decirlo? Sé que podría cambiarlo a salida, pero creo que si está configurado como salida y bajo, básicamente estaría conectando a tierra la batería.

De todos modos, mis cursos de EE fueron hace mucho tiempo. Cualquier ayuda sobre la teoría aquí sería apreciada.

Adam Haile
fuente

Respuestas:

8

Seguramente va a agotar la batería a través de la resistencia. La cantidad de corriente que extraerá se regirá por la ley de Ohm: I = V / R. Digamos que el voltaje de la batería es de 3V (es decir, el cronodot Vbat habitual). Con una resistencia de 4.7 kOhm, dibujará 3/4700 = 638 microamperios continuamente. Si lo convierte en una resistencia de 1 MOhm, en su lugar dibujará 3/1000000 = 3 microamperios. Y si lo convierte en una resistencia de 10 MOhm, dibujará 3 / 1e7 = 300 nanoamperios.

Cuanto mayor sea el valor de la resistencia que elija, menos corriente consumirá continuamente, pero más tiempo le tomará a su pin digital la transición (piense en la constante de tiempo R * C gobernada por la resistencia y la capacitancia de los pines y trazas). Siempre que espere lo suficiente (o vuelva a consultar periódicamente) después del inicio, debería estar bien con una resistencia de 10 MOhm. Teóricamente, también podría captar más ruido con un valor mayor (ya que comienza a parecerse cada vez más a un circuito abierto), pero creo que estará bien. Incluso podría considerar subir hasta 100 MOhm.

Un CR1632 típico tiene 130 miliamperios-hora (mAh) de energía almacenada en él, y quizás el 80% de eso es vida útil, así que vamos a llamarlo 100 mAh para facilitar el cálculo. Una estimación aproximada de la duración de la batería es el consumo de miliamperios-hora / miliamperios.

  • Con su resistencia de 4.7 kOhm eso es 100 / .638 = 156 horas = 6.5 días
  • Con una resistencia de 1 MOhm que es 100 / 0.003 = 33333 horas = 3.8 años
  • Con una resistencia de 10 MOhm que es 100 / 0.0003 = 333333 horas = 38 años

Estos son números de límite superior que suponen que el resto de su sistema no consume energía. Representan la vida útil de su sistema cuando está apagado y la batería simplemente se agota a través de la resistencia. También hay muchos efectos de segundo orden que no se tienen en cuenta (caída de voltaje, química de fuga de batería interna, etc.). Es poco probable que la resistencia sea su mayor problema dependiendo de la vida útil que espera lograr.

vicatcu
fuente
Duh ... no puedo creer que haya olvidado notar el hecho de que estaba conectando a tierra la batería directamente: P ¿Alguna sugerencia sobre una forma diferente de hacer esto?
Adam Haile
Creo que su enfoque está bien, dado que con una resistencia lo suficientemente grande, la corriente de fuga no afectará significativamente la duración de la batería, actualizaré con algunas matemáticas más.
vicatcu
1
Voto a favor: respondiendo a la pregunta principal. @AdamHaile, una técnica que puede resultarle útil: los voltímetros digitales utilizan un FET que presenta un drenaje insignificante equivalente a una resistencia en órdenes o MOhms.
shimofuri
1
@AdamHaile una cosa rápida ... Noté su comentario de que su sistema es un 5V en otro comentario. Tenga cuidado con que el umbral alto de entrada de voltaje digital sea lo suficientemente alto como para registrarse con una batería agotada (probablemente hasta aproximadamente 2 V para un CR1632) - consulte la hoja de datos de su microcontrolador
vicatcu
1

Casi cualquiera de estos esquemas de medición que involucran resistencias, si se dejan conectados permanentemente, provocará un consumo de corriente inaceptable y una reducción de la vida útil de la pequeña batería de litio que alimenta estos dispositivos.

La solución, entonces, es hacer que el circuito de medición consuma corriente durante breves instantes a intervalos poco frecuentes, cuando realmente está tomando una medición.

Para una prueba digital, esto podría ser tan fácil como usar un menú desplegable interno configurable por software y solo configurarlo como un menú desplegable durante un breve período de tiempo alrededor de la prueba. Sin embargo, deberá analizar las posibles complicaciones de tener voltaje en el pin cuando el MCU que realiza la medición no está encendido / en modo de suspensión.

Una medición analógica sería más complicada, pero podrían aplicarse ideas similares. Por ejemplo, podría conectar la resistencia inferior de un divisor de voltaje (alta impedancia relativa a las E / S) a un pin de salida, y solo conducirlo bajo durante un tiempo alrededor de la medición. O incluso podría construir un circuito RC con un pequeño condensador de baja fuga y un solo pin de E / S que podría manejar bajo como salida, luego configurarlo como una entrada analógica y medir el voltaje después de un período de tiempo. Si el voltaje de umbral digital del dispositivo es constante (¡cuidado con la temperatura!), Incluso puede hacer una medición analógica con una entrada digital de esta manera, midiendo el tiempo que tarda el condensador en cargarse al voltaje de umbral.

Chris Stratton
fuente
Hmmm ... desearía poder hacer lo interno de pull-down, pero lamentablemente solo hay resistencias pull-up internas. Puedo estar tratando de complicar las cosas. Una almohadilla de soldadura que debe ser puenteada para usar un modo u otro probablemente sería aceptable.
Adam Haile
Puede hacer su propio menú desplegable configurable por software con una resistencia a otro pin de E / S. O puede usar la idea del circuito del circuito RC, manejando el mismo pin que luego reconfigurará como entrada para medir.
Chris Stratton
En realidad, usar un menú desplegable interno es una muy mala idea. Los pines de E / S generalmente se conectan a Vdd y GND con diodos para evitar que el voltaje del pin se desvíe fuera del voltaje de suministro. Cuando el chip no está alimentado, el pin estará básicamente conectado a GND con dos diodos paralelos y la aplicación de cualquier voltaje sobre el voltaje umbral de los diodos dará como resultado un flujo de corriente muy grande. Una mejor idea sería usar un transistor PMOS en serie cuya puerta esté controlada por un transistor NMOS a tierra. Esto minimizará las fugas cuando el microcontrolador no esté encendido.
alex.forencich
1

El DS3231 tiene temperatura interna que puede leer. Podría emitir un comando sobre I2C para leer la temperatura, si recibió una respuesta tiene el DS3231, si no tiene el DS1307.

Scott Goldthwaite
fuente
1
No creo que esto responda la pregunta de ninguna manera.
shimofuri
Creo que si. Adam en el OP quiere determinar si un DS3231 o DS1307 está conectado a su circuito. Estaba pensando en intentar hacer esto con el pin vbat. Le sugiero que lo haga al ver si el dispositivo devolverá la temperatura. Me parece que debería funcionar bien.
Scott Goldthwaite
Creo que esto aborda la pregunta: no la pregunta que se hizo, sino la declaración del problema subyacente. Interesante. Obtendría mi voto positivo si se desarrollara un poco, y con referencias agregadas.
Anindo Ghosh
En la hoja de datos de Maxim, vea la Figura 1 en la página 11. Muestra los registros (11 y 12) para la temperatura interna.
Scott Goldthwaite